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

如何用Pandas为缺失时间戳分组的行数统计填充0值?

解决方法

你可以通过两种方式填充缺失的时间区间为0:

方法一:对已分组结果重新索引

先基于现有分组数据的时间范围生成完整的10分钟间隔时间序列,再重新对齐原数据并填充缺失值:

import pandas as pd

# 你的原分组代码
minutes = '10T'
grouped_df = df.loc[df['id_area'] == 3].groupby(pd.to_datetime(df["timestamp"]).dt.floor(minutes))["x"].count()

# 生成完整的时间索引
start = grouped_df.index.min()
end = grouped_df.index.max()
full_time_index = pd.date_range(start=start, end=end, freq=minutes)

# 重新索引并填充0
filled_grouped = grouped_df.reindex(full_time_index, fill_value=0)

执行后filled_grouped会包含所有10分钟间隔的时间点,空缺区间的计数为0。

方法二:直接用resample替代groupby(更简洁)

使用resample可以直接生成完整的时间区间并统计,无需后续补全:

minutes = '10T'
# 筛选数据后设置时间索引,resample按10分钟统计数量,自动补全缺失区间为0
filled_grouped = (
    df.loc[df['id_area'] == 3]
    .assign(timestamp=pd.to_datetime(df['timestamp']))
    .set_index('timestamp')
    ['x']
    .resample(minutes)
    .count()
)

resample会自动覆盖从数据中最早到最晚时间的所有10分钟间隔,没有数据的区间计数自然为0,无需额外填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:20:28