You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中基于Datetime分钟维度的连续Rolling Sum实现

嘿,看你的需求和示例数据,EXPECTED Rolling_X 列其实就是 X 列按时间顺序的累计求和,实现起来很简单,用 pandas 就能快速搞定,具体步骤如下:

1. 先确保数据按时间排序

累计求和的结果完全依赖于数据的顺序,所以第一步要把你的 DataFrame 按时间戳(比如dateTime列)升序排列,保证数据是按时间先后顺序来的:

df = df.sort_values(by='dateTime')

2. 计算累计求和生成目标列

直接调用 pandas 的cumsum()方法,对X列做累计求和,赋值给Rolling_X列就行:

df['Rolling_X'] = df['X'].cumsum()

验证效果

跑上面的代码后,生成的Rolling_X列就和你给出的EXPECTED Rolling_X完全一致了,截取部分示例如下:

dateTime1minXEXPECTED Rolling_XRolling_X
2017-09-19 02:00:042017-09-19 02:00:00555
2017-09-19 02:00:042017-09-19 02:00:00166
2017-09-19 02:01:312017-09-19 02:01:00099
2017-09-19 02:01:352017-09-19 02:01:0052222

补充:如果是分钟组内的独立累计

要是你后来需求变了,想要每个分钟分组内单独累计(每个分钟从0开始加),那可以用groupby配合cumsum:

df['Rolling_X_per_min'] = df.groupby('1min')['X'].cumsum()

不过根据你给的示例,这个应该不是你当前需要的,就当给你留个备用方案~

内容的提问来源于stack exchange,提问作者Giladbi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:24:29