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

如何对DataFrame中各分组时间序列按指定时间范围重采样补全

实现方案

你需要先生成「所有分组+指定时间范围内所有日期」的完整笛卡尔积索引,再重索引原表填充缺失值即可,操作步骤如下:

  1. 首先确保date列已转换为datetime类型
import pandas as pd
df['date'] = pd.to_datetime(df['date'])
  1. 生成你需要的全局时间范围(可自定义起止时间、频率)
# 示例为2020年1月到6月的每月首日,freq可按需求调整为'D'(日)、'QS'(季度首日)等
full_dates = pd.date_range(start='2020-01-01', end='2020-06-01', freq='MS')
  1. 生成所有分组和日期的完整组合索引,重索引原表后填充缺失值为0
# 获取所有唯一分组
all_groups = df['group'].unique()
# 生成分组+日期的完整组合索引
full_index = pd.MultiIndex.from_product([all_groups, full_dates], names=['group', 'date'])
# 重索引填充缺失值
result = df.set_index(['group', 'date']).reindex(full_index, fill_value=0).reset_index()

方案说明

和你之前用的groupby.resample逻辑不同,这个方案是基于你指定的全局时间范围生成全量的分组-日期组合,不管单个分组原本的日期区间是什么,都会补全整个指定时间范围内的所有日期,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:15:00