当索引列有重复时,如何将Panda的列转换为索引和标题

时间:2016-07-15 20:37:23

标签: python pandas pivot

我想转换一个与此类似的数据帧df:

PIDM            | COURSE          | GRADE
1               | MAT1            | B
1               | PHY2            | C
2               | MAT1            | A
2               | MAT2            | B
2               | PHE2            | A

采用以下格式:

PIDM     |  MAT1      | PHY2    |  MAT2  | PHY 2  
1        |    B       |    C    |  NaN   |   NaN
2        |    A       |    NaN  |  B     |   A

我假设我可以做类似的事情:

df2 = df.pivot(index='PIDM', columns=‘COURSE’, values = ‘GRADE)

但我收到一条错误,指出我有重复的索引。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将pivot_table与汇总功能join一起使用:

df2 = df.pivot_table(index='PIDM', columns='COURSE', values = 'GRADE', aggfunc=', '.join)
print (df2)
COURSE MAT1  MAT2  PHE2  PHY2
PIDM                         
1         B  None  None     C
2         A     B     A  None