如何在时间序列数据中按每日区间计算滚动求和
按日累计求和的实现方案
针对你的时间序列数据按日累计求和需求,用Pandas可以轻松实现,具体步骤如下:
第一步:确保时间列格式正确
如果你的timestamp列还不是datetime类型,先做格式转换:import pandas as pd df['timestamp'] = pd.to_datetime(df['timestamp'])第二步:按日期分组计算累计求和
提取日期作为分组键,对每个分组的val列执行累计求和(cumsum()),将结果存入新列sum:df['sum'] = df.groupby(df['timestamp'].dt.date)['val'].cumsum()也可以用
dt.floor('D')获取当日起始时间作为分组依据,效果完全一致:df['sum'] = df.groupby(df['timestamp'].dt.floor('D'))['val'].cumsum()
完整测试示例
假设初始数据如下:
data = { 'timestamp': ['2022-10-10 00:00:00', '2022-10-10 00:01:00', '2022-10-10 00:02:00', '2022-10-10 23:59:00', '2022-10-11 00:00:00'], 'val': [50, 10, 20, 10, 20] } df = pd.DataFrame(data)
执行上述代码后,输出结果将与你提供的示例完全匹配:
| timestamp | val | sum |
|---|---|---|
| 2022-10-10 00:00:00 | 50 | 50 |
| 2022-10-10 00:01:00 | 10 | 60 |
| 2022-10-10 00:02:00 | 20 | 80 |
| 2022-10-10 23:59:00 | 10 | 90 |
| 2022-10-11 00:00:00 | 20 | 20 |
内容的提问来源于stack exchange,提问作者prof31
相关产品推荐
相关产品推荐

