加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:55:55 所属栏目:Python 来源:网络整理
导读:我的意见是: Col1 Col2 Col3 Col4 Col50 1 Y A PQR 561 1 Y A XYZ 22 1 Y A DEF 203 2 Y B PQR 184 2 Y B XYZ 245 2 Y B DEF 116 3 Y C PQR 207 3 Y C XYZ 48 3 Y C DEF 189 3 Y C HHH 23 我想要的输出是: Col1 Col2 Col3 PQR XYZ DEF HHH0 1 Y A 56 2 20
我的意见是:

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'],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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读