熊猫pivot_table使用列名

时间:2019-02-06 14:26:51

标签: python pandas

我有一个熊猫数据框,如下所示:

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()进行操作,还是我走错了方向?

2 个答案:

答案 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')