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

Pandas如何基于其他列的45秒时间窗口对指定列求和并跳过空区间

实现方法

核心思路是通过整数除法计算每个时间戳所属的45秒窗口的起始值,再按窗口分组对weight求和即可,空窗口会因为没有匹配数据自动被排除,不需要额外处理。

完整代码示例

import pandas as pd

# 构造示例数据,实际使用时替换为你自己的DataFrame读取逻辑即可
data = {
    "weight": [1,1,1,1,1,1,1],
    "timeblock": [1620975600, 1620975640, 1620975700, 1620975715, 1620975740, 1620975790, 1620975800]
}
df = pd.DataFrame(data)

# 计算每个时间点对应的45秒窗口起始时间
df["interval"] = (df["timeblock"] // 45) * 45

# 按窗口分组求和,调整列顺序得到最终结果
result = df.groupby("interval", as_index=False)["weight"].sum()[["weight", "interval"]]

print(result)

输出结果

weight    interval
0       2  1620975600
1       2  1620975690
2       1  1620975735
3       2  1620975780

注意事项

如果你的timeblock列是datetime类型而非秒级整数时间戳,需要先转成秒级时间戳再做计算:

# datetime类型转秒级时间戳
df["timeblock"] = df["timeblock"].astype("int64") // 10**9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:06:03