python - Pandas 按组、时间间隔运行总计
问题描述
我想拿一张这样的客户订单表:
customer_id | order_date | amount
0 | 2020-03-01 | 10.00
0 | 2020-03-02 | 2.00
1 | 2020-03-02 | 5.00
1 | 2020-03-02 | 1.00
2 | 2020-03-08 | 2.00
1 | 2020-03-09 | 1.00
0 | 2020-03-10 | 1.00
并创建一个按周计算运行总计的表。就像是:
order_week | 0 | 1 | 2
2020-03-01 | 12.00 | 6.00 | 0.00
2020-03-08 | 13.00 | 7.00 | 2.00
非常感谢你的帮助!!
解决方案
国际大学联盟:
df['order_date'] = pd.to_datetime(df['order_date'])
(df.groupby(['customer_id',df.order_date.dt.floor('7D')])
.amount.sum()
.unstack('customer_id',fill_value=0)
.cumsum()
)
输出:
customer_id 0 1 2
order_date
2020-02-27 12.0 6.0 0.0
2020-03-05 13.0 7.0 2.0
推荐阅读
- javascript - 获取 json 数据 - javascript 到 python 服务器
- terraform - 从 terraform 中的嵌套地图程序性地生成单项地图
- html - 设置 src={{form.image_url}} 无法呈现图像,但 form.image_url 确实包含 URL (Django)
- go - 我应该使用 Get 方法来获取值还是应该直接使用字段?
- php - 使用 PHP 打印 Json 结果
- php - Xdebug:无法连接到调试客户端(Phpstorm + WSL2)
- excel - 使用Excel VBA加载IE11不兼容的网站
- django - 如何使某些字段只能由 Django 中的某些类型的用户访问?
- c# - 在等待 GetAsync 的结果时定期做一些事情
- c - 当我要标记超过 10 个字符时,我正在制作的词法分析器中出现损坏的最大尺寸错误