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

使用Pandas将月度数据线性插值为日度/周度数据

把月度Pandas DataFrame转换为日度/周度线性插值数据

嘿,这个需求我熟,用Pandas的日期处理和插值功能就能完美解决,咱们一步步来,保证你能轻松实现:

第一步:准备并转换原始数据

首先,咱们先把你给出的月度数据转换成Pandas能识别的日期格式,同时调整数据结构方便后续处理:

import pandas as pd

# 先模拟你的原始DataFrame(如果已经有了可以跳过这部分)
data = {
    '201301': [0.747711, 0.776537, 0.801699, 0.797942, 0.777472, 0.780933, 2.071699],
    '201302': [0.793101, 0.759745, 0.847655, 0.687899, 0.799676, 0.750774, 2.261739],
    '201303': [0.771819, 0.733673, 0.796586, 0.729911, 0.782947, 0.781056, 2.126915],
    '201709': [0.818161, 0.757496, 0.784537, 0.819887, 0.804533, 0.790846, 1.891780],
    '201710': [0.812522, 0.765181, 0.763551, 0.772395, 0.791759, 0.773705, 2.098914]
}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])

# 把列名的yyyymm字符串转成日期格式(这里有两种选择)
# 选择1:对应**月初**日期(和你示例中的计算逻辑一致,间隔是自然月天数)
df.columns = pd.to_datetime(df.columns, format='%Y%m')
# 选择2:对应**月末**日期(更贴合月度统计数据的常规锚点)
# df.columns = pd.to_datetime(df.columns, format='%Y%m') + pd.offsets.MonthEnd(0)

# 转置DataFrame:让日期成为行索引,变量(a-g)作为列,方便时间维度的插值
df_transposed = df.T

第二步:生成日度线性插值数据

现在我们可以基于转置后的月度数据,生成完整的日度序列并做线性插值:

# 生成从第一个月度日期到最后一个月度日期的所有日度索引
daily_index = pd.date_range(start=df_transposed.index[0], end=df_transposed.index[-1], freq='D')

# 重新索引到日度,并用线性插值填充所有缺失的日度数据
daily_df = df_transposed.reindex(daily_index).interpolate(method='linear')

# 如果需要把变量(a-g)变回行索引(和原始格式一致),可以再转置回去
# daily_df = daily_df.T

这一步的插值逻辑和你示例中的计算完全一致:比如2013年1月到2月的日度增量,就是(2月值 - 1月值)/两个月之间的天数,Pandas会自动根据日期间隔计算线性增量,无需手动计算。

第三步:生成周度线性插值数据

周度数据有两种生成方式,你可以根据需求选择:

方式1:直接从月度数据插值到周度

# 生成周度数据,默认以每周日作为周结束(可以用freq='W-MON'改成周一结束)
weekly_df = df_transposed.resample('W').interpolate(method='linear')

方式2:从日度数据聚合到周度

如果你已经生成了日度数据,也可以直接聚合到周度(比如取每周最后一天的值):

# 取每周最后一天的日度插值结果作为周度数据
weekly_df = daily_df.resample('W').last()
# 或者取每周的均值:weekly_df = daily_df.resample('W').mean()

验证结果

你可以查看生成的日度/周度数据,比如查看2013年1月的前几天:

print(daily_df.loc['2013-01-01':'2013-01-03', 'a'])

输出会是从1月初始值开始,每天按线性增量递增的结果,和你手动计算的完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:15:50