微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas-分组后将列转换为新行

如何解决Pandas-分组后将列转换为新行

我们使用 pivot_table

df=pd.pivot_table(df,index=['shopCode','Product'],columns=df.groupby(['shopCode','Product']).cumcount().add(1),values=['Code','score'],aggfunc='sum')
df.columns=df.columns.map('{0[0]}{0[1]}'.format) 
df
Out[112]: 
                  Code1  Code2  Code3  score1  score2  score3
shopCode Product                                             
111      Apple      123    456    789    0.70    0.75    0.80
222      Orange     142    136    623    0.66    0.83    0.76

reset_index

df.reset_index()
Out[113]: 
   shopCode Product  Code1  Code2  Code3  score1  score2  score3
0       111   Apple    123    456    789    0.70    0.75    0.80
1       222  Orange    142    136    623    0.66    0.83    0.76

解决方法

我有一个Pandas数据框。我需要将某些列转换为行。数据帧每3行的前两列具有相同的数据。因此,正如您在预期数据框中看到的那样,我还需要6列。我有以下数据框:

shopCode    Product   Code  Score
    111      Apple    123    0.70
    111      Apple    456    0.75
    111      Apple    789    0.80
    222      Orange   142    0.66
    222      Orange   136    0.83
    222      Orange   623    0.76

我期望的数据帧是:

shopCode  Product   Code1 Code2 Code3 Score1 Score2 Score3
  111      Apple     123   456   789   0.70   0.75   0.80
  222      Orange    142   136   623   0.66   0.83   0.76

我尝试使用, df.pivot(index=['shopCode','Product'],columns=['Code1','Code2','Code3','Score1','Score2','Score3'],values=['Code','Score']) 但不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。