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

如何在Pandas中补全时间序列DataFrame的缺失周结束日期

实现方案

你可以通过分组计算周偏移量的方式完成填充,完整可运行代码如下:

import pandas as pd
import numpy as np

# 构造示例数据,实际使用时替换为你自己的DataFrame即可
data = {
    'Week_Ending': ['8/5/2021', '8/12/2021', '8/19/2021', np.nan, np.nan],
    'Sales': [1000, 1122, 980, 1000, 1234]
}
df = pd.DataFrame(data)

# 1. 将Week_Ending列转为datetime类型,这是日期运算的基础
df['Week_Ending'] = pd.to_datetime(df['Week_Ending'])

# 2. 计算每个行距离所在分组第一个有效日期的周偏移量
week_offset = df.groupby(df['Week_Ending'].notna().cumsum()).cumcount()

# 3. 前向填充有效日期后,加上偏移量对应的天数完成填充
df['Week_Ending'] = df['Week_Ending'].ffill() + pd.to_timedelta(week_offset * 7, unit='d')

# 如需转回「月/日/年」的字符串格式,可执行下方代码
df['Week_Ending'] = df['Week_Ending'].dt.strftime('%m/%d/%Y')

代码说明

  • 你之前使用interpolate没有生效,大概率是因为Week_Ending列还是字符串类型,只有转换为datetime类型后才能进行日期相关的运算和插值。
  • df['Week_Ending'].notna().cumsum()会给每一组「有效日期+后续连续缺失值」分配相同的分组ID,cumcount()会统计每个行在组内的序号,以此作为周偏移的依据。
  • 该方案兼容任意长度的连续缺失值,自动按每周7天的规则向后递推。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:09:03