如何解决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 举报,一经查实,本站将立刻删除。