我从包含30万行的数据集中得到以下数据框:
CustomerID Revenue
0 17850.0 15.30
1 17850.0 11.10
2 13047.0 17.85
3 13047.0 17.85
4 17850.0 20.34
5 13047.0 12.60
6 13047.0 12.60
7 13047.0 31.80
8 17850.0 20.34
9 17850.0 15.30
10 13047.0 9.90
11 13047.0 30.00
12 13047.0 31.80
13 12583.0 40.80
14 12583.0 39.60
15 13047.0 14.85
16 13047.0 14.85
17 12583.0 15.60
18 12583.0 45.00
19 12583.0 70.80
CustomerID值分批重复.例如,前两行中包含的CustomerID值17850可能会稍后在数据集中的某个位置再次出现.
我正在尝试按相同的客户ID对行的子集进行分组,并汇总该组的收入.我要执行的数据框转换应如下所示:
CustomerID TotalRevenue
0 17850.0 26.40
1 13047.0 35.70
2 17850.0 20.34
3 13047.0 57.0
4 17850.0 35.64
5 13047.0 71.7
6 12583.0 80.4
7 13047.0 29.7
8 12583.0 131.4
问题是如果我使用groupby方法将所有具有相同CustomerID值的行分组.因此,通过这种方式,它将整个数据帧中的所有17850个CustomerID值组合在一起,而不仅仅是前两行以及随后的其他CustomerID值.
衷心感谢您使用熊猫如何进行此操作的帮助.谢谢
解决方法:
df.groupby(['CustomerID',df.CustomerID.diff().ne(0).cumsum()],sort=False)['Revenue'].sum().rename_axis(['CustomerID','GID']).reset_index().drop('GID',axis=1)
输出:
CustomerID Revenue
0 17850.0 26.40
1 13047.0 35.70
2 17850.0 20.34
3 13047.0 57.00
4 17850.0 35.64
5 13047.0 71.70
6 12583.0 80.40
7 13047.0 29.70
8 12583.0 131.40
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。