這是一個很奇怪的問題,但我不同意。
我確實有兩個資料框,名為 df1 和 df2。有結構是:
df1:
Eval Lang Average Model
df2:
Eval Lang Mean
模型列恰好有六個不同的可用值,并且對于每種可能的組合(Eval、Lang),都恰好存在這六個值之一。我希望這六個值是 df2 中的六個新列,在該位置都具有 df1['Average'] 值。
所以結果結構是:
Eval Lang Mean ModelAverage1 ModelAverage2 ModelAverage3 ModelAverage4 ModelAverage5 ModelAverage6
有沒有簡單聰明的方法來做到這一點?我不再確定我在這里所做的是否是正常的熊貓命令應該支持的。
==== 為了形象化,這里有一個例子:df1.csv:
Eval,Lang,Average,Model
F1,German,0.62,flairmulti
F1,German,0.7363,flairsingle
F1,German,0.72,bertmulti
F1,German,0.7527,bertsingle
F1,German,0.78,robertamulti
F1,German,0.7349,robertasingle
df2.csv
Eval,Lang,Mean
F1,German,0.54
Precision,German,0.54
Recall,German,0.53
結果將類似于:total.csv
Eval,Lang,Mean,flairmulti,flairsingle,bertmulti,bertsingle,robertamulti,robertasingle
F1,German,0.54,0.62,0.7363,0.72,0.7527,0.78,0.7349
Precision,German,0.54,...
Recall,German,0.53,...
當然,Lang 和 Eval 也有其他值,但實際上,它們中的每一對都有我上面提到的“Model”的這六個命名值。
uj5u.com熱心網友回復:
您可以將列中的值作為新列,將列中的值作為新值:pivot df2ModelAverage
df3 = df2.merge(df1.pivot(index=['Eval', 'Lang'], columns='Model', values='Average').reset_index())
輸出:
>>> df3
Eval Lang Mean bertmulti bertsingle flairmulti flairsingle robertamulti robertasingle
0 F1 German 0.54 0.72 0.7527 0.62 0.7363 0.78 0.7349
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/390620.html
下一篇:根據日期在資料框中創建一個新列
