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

如何避免Pandas resample下采样时填充缺失日期的间隔数据

问题:Pandas下采样时避免填充缺失日期的空值

我有一个采样间隔为1分钟的pandas Series,包含2023年10月18日晚、10月20日早的测量数据,10月19日无数据。需要将其下采样至5分钟间隔,但使用series.resample("5T").mean()会自动填充10月19日的NaN值,series.resample("5T").sum()则填充0值——我需要仅保留原Series中存在的日期对应的下采样结果,不为缺失的日期段生成任何数据。

原始测试代码及输出:

import pandas as pd

index1 = pd.date_range("2023-10-18 23:50", "2023-10-18 23:59", freq="T")
index2 = pd.date_range("2023-10-20 00:00", "2023-10-20 00:10", freq="T")
series1 = pd.Series(range(len(index1)), index=index1)
series2 = pd.Series(range(100, len(index2)+100), index=index2)
series = pd.concat([series1, series2])

# 会填充10月19日NaN的resample
print(series.resample("5T").mean())

输出结果:

2023-10-18 23:50:00      2.0
2023-10-18 23:55:00      7.0
2023-10-19 00:00:00      NaN
2023-10-19 00:05:00      NaN
2023-10-19 00:10:00      NaN
                       ...  
2023-10-19 23:50:00      NaN
2023-10-19 23:55:00      NaN
2023-10-20 00:00:00    102.0
2023-10-20 00:05:00    107.0
2023-10-20 00:10:00    110.0
Freq: 5T, Length: 293, dtype: float64

解决方案:按日期分组后单独resample

通过按日期分组,再对每个日期组独立执行resample,可以只处理原始数据存在的日期,避免生成缺失日期的空值。

实现代码

import pandas as pd

# 构造原始数据(同测试代码)
index1 = pd.date_range("2023-10-18 23:50", "2023-10-18 23:59", freq="T")
index2 = pd.date_range("2023-10-20 00:00", "2023-10-20 00:10", freq="T")
series1 = pd.Series(range(len(index1)), index=index1)
series2 = pd.Series(range(100, len(index2)+100), index=index2)
series = pd.concat([series1, series2])

# 按日期分组后分别执行resample
result = series.groupby(series.index.date).apply(lambda x: x.resample("5T").mean()).droplevel(0)
print(result)

输出结果

2023-10-18 23:50:00      2.0
2023-10-18 23:55:00      7.0
2023-10-20 00:00:00    102.0
2023-10-20 00:05:00    107.0
2023-10-20 00:10:00    110.0
dtype: float64

原理说明

  1. series.index.date将每个时间戳提取为日期对象,以此分组后,仅会生成原始数据存在的日期组(即10月18日、10月20日两组),10月19日无数据,不会生成对应组。
  2. 对每个日期组单独执行resample("5T").mean(),只会处理该日期内的时间区间,不会跨日期生成空值。
  3. droplevel(0)移除分组产生的日期层级,恢复为单一的时间索引结构,符合预期输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:55:23