我有一个熊猫数据框,如下所示:
AddDrivers
使用熊猫pivot_table函数,我可以旋转表以获得以下数据框:
ID, tag, score1
A1, T1, 10
A1, T1, 0
A1, T2, 20
A1, T2, 0
A2, T1, 10
A2, T1, 10
A2, T2, 20
A2, T2, 20
现在让我们说我的输入数据框具有多个“得分”列:
df.pivot_table(index= 'tag' , columns='ID', values= 'score1' , aggfunc='mean')
A1, A2
T1 5, 10
T2 10, 20
我正在寻找一种“透视”数据以获取以下结果的方法:
ID, tag, score1, score2, score3
A1, T1, 10, 100, 1000
A1, T1, 0, 0, 0
A1, T2, 20, 200, 2000
A1, T2, 0, 0, 0
A2, T1, 10, 100, 1000
A2, T1, 10, 100, 1000
A2, T2, 20, 200, 2000
A2, T2, 20, 200, 2000
这一次,我不想使用一列的值来透视,而是直接使用多个列名。
是否有一种方法可以使用ivot_table()进行操作,还是我走错了方向?
答案 0 :(得分:1)
先汇总mean
,然后再进行T
的转置:
df = df.groupby('tag').mean().T
print (df)
tag T1 T2
score1 7.5 15.0
score2 75.0 150.0
score3 750.0 1500.0
答案 1 :(得分:1)
是的,您可以像这样使用$ awk '{print $1, "and", $2}' file
xyz and 123
abc and 456
pqr and 789
$ sed 's/ / and /' file
xyz and 123
abc and 456
pqr and 789
:
pivot_table
输出:
df1.pivot_table(columns='ID', aggfunc='mean')