【发布时间】:2020-06-23 08:02:54
【问题描述】:
ID. Email. Amount Date
1. wi@gn.c. 20 26-11-19 12.06.36.726000
2. wi@gn.c. 40 26-12-19 12.06.37.293000
3. by@gn.c. 50 26-11-19 12.06.37.960000
4. wi@gn.c. 20 26-01-20 12.06.51.306000
5. wi@gn.c. 60 26-02-20 12.06.52.458000
6. by@gn.c. 15 26-08-19 12.06.58.397000
7. wi@gn.c. 37 26-12-19 12.07.00.191000
5. wi@gn.c. 60 26-02-20 12.06.52.458000
6. by@gn.c. 15 26-08-19 12.06.58.397000
7. wi@gn.c. 37 26-12-19 12.07.00.191000
我需要获取每个电子邮件地址在过去 1 个月、3 个月和 6 个月的总金额。我已经尝试了几种命令组合,但现在我迷路了。
在另一个答案df.groupby('Email')['Amount'].sum().reset_index() 有效,但我需要根据 1 个月、3 个月和 6 个月添加总和。
预期的结果将如下所示
ID. Email. Total for past 1 Month Total for past 3 Month Total for past 6 Month
1. wi@gn.c. 20 40 60
3. by@gn.c. 50 50 100
注意:最终的数字并不完全正确,我只是想描绘一下我正在尝试做的事情。
【问题讨论】:
-
我猜你可以使用数据透视表
-
@davidbilla,感谢您的建议,我会阅读它并了解情况如何,但我对 python 比较陌生,我是一名需要对某些数据进行一些操作的 java 开发人员在python中
-
我建议从其中一列开始,然后使用 df[df[date column]>= x months ago].groupby ...
-
@WinfredAdrah 请在下面查看我的回答。对此可能有更有效的解决方案。
-
@davidbilla,我在 excel 中手动进行了计算,但与您的结果不符
标签: python pandas datetime filter jupyter-notebook