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

日期型索引缺失序列补全及剩余变量NA值填充技术需求

补全月度时间序列索引并填充缺失值

我来帮你搞定这个时间序列补全的问题,用Pandas就能轻松解决,步骤非常清晰:

1. 先构造你的数据集并设置日期索引

首先我们把你提供的数据转换成Pandas DataFrame,同时把RECEIPT_MONTH_YEAR设为日期型索引:

import pandas as pd

# 基于你提供的数据构造DataFrame
data = {
    'RECEIPT_MONTH': [1,2,3,4,5,6,7,8,9,10,11,8,9,10,11,12]
}
# 将日期字符串转为datetime类型作为索引
date_index = pd.to_datetime([
    '2014-01-01', '2014-02-01', '2014-03-01', '2014-04-01',
    '2014-05-01', '2014-06-01', '2014-07-01', '2014-08-01',
    '2014-09-01', '2014-10-01', '2014-11-01', '2015-08-01',
    '2015-09-01', '2015-10-01', '2015-11-01', '2015-12-01'
])

df = pd.DataFrame(data, index=date_index)

2. 生成完整的连续月度日期序列

接下来我们生成从最早日期到最晚日期的完整月度序列,用freq='MS'指定每月第一天(和你的索引格式完全匹配):

# 创建完整的月度日期范围
full_monthly_dates = pd.date_range(start=df.index.min(), end=df.index.max(), freq='MS')

3. 重新索引补全缺失日期

用生成的完整日期序列重新索引DataFrame,此时缺失的RECEIPT_MONTH会自动填充为NaN:

# 重新索引,补全所有缺失的月度记录
df_complete = df.reindex(full_monthly_dates)

4. 填充缺失的RECEIPT_MONTH值

因为RECEIPT_MONTH就是对应日期的月份数,我们可以直接从索引中提取月份来填充缺失值,完全不需要手动输入:

# 从日期索引中提取月份,填充NaN值
df_complete['RECEIPT_MONTH'] = df_complete['RECEIPT_MONTH'].fillna(df_complete.index.month)

这样处理后,你就得到了从2014-01-01到2015-12-01的完整连续月度数据集,所有缺失的记录都被补全,RECEIPT_MONTH的值也完全正确。

内容的提问来源于stack exchange,提问作者Naveen Raj B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:29:38