python – Pandas Pivot和Merge无法正常工作

我的意见是:

   Col1 Col2 Col3 Col4  Col5
0     1    Y    A  PQR    56
1     1    Y    A  XYZ     2
2     1    Y    A  DEF    20
3     2    Y    B  PQR    18
4     2    Y    B  XYZ    24
5     2    Y    B  DEF    11
6     3    Y    C  PQR    20
7     3    Y    C  XYZ     4
8     3    Y    C  DEF    18
9     3    Y    C  HHH    23

我想要的输出是:

      Col1  Col2    Col3  PQR  XYZ  DEF   HHH
0       1      Y      A   56    2   20   NaN
1       2      Y      B   18   24   11   NaN
2       3      Y      C   20    4   18  23.0

但是,当我这样做时:

output = input.pivot_table(index='Col1',columns='Col4',values='Col5')

我明白了:

  Col1  PQR      XYZ   DEF    HHH
   1     56      2     20    NaN
   2     18     24     11    NaN
   3     20      4     18   23.0

Col1现在是索引

这不是全部 – 所以我尝试并申请:

output = output.merge(input,how='left',left_index=True,right_on='Col1')

这只是给了我绝对的垃圾

想法?

最佳答案 我认为你需要将Col2和Col3添加到参数索引:

output = input.pivot_table(index=['Col1', 'Col2','Col3'],columns='Col4',values='Col5')
              .reset_index()
print (output)
Col4  Col1 Col2 Col3   DEF   HHH   PQR   XYZ
0        1    Y    A  20.0   NaN  56.0   2.0
1        2    Y    B  11.0   NaN  18.0  24.0
2        3    Y    C  18.0  23.0  20.0   4.0
点赞