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

将月度均值DataFrame转换为十年日粒度时间序列

解决方案:月度均值转日粒度时间序列

前提假设

你的月度均值DataFrame(记为monthly_df)的索引为1-12,分别对应1月至12月的均值数据。

实现步骤

  1. 生成目标日期范围:创建2010年1月1日到2020年12月31日的所有日期序列。
  2. 匹配月度数据:给每个日期提取所属月份,将对应的月度均值映射到每一天。
  3. 整理最终结果:设置日期为索引,清理多余列,得到日粒度时间序列。

代码实现

import pandas as pd

# 1. 生成完整日期序列
date_range = pd.date_range(start='2010-01-01', end='2020-12-31', freq='D')

# 2. 创建日度DataFrame并提取月份
daily_df = pd.DataFrame({'date': date_range})
daily_df['month'] = daily_df['date'].dt.month

# 3. 合并月度均值数据
daily_df = daily_df.merge(monthly_df, left_on='month', right_index=True, how='left')

# 4. 调整结构:设置日期为索引,移除临时列
daily_df = daily_df.set_index('date').drop('month', axis=1)

补充说明

如果你的月度DataFrame索引是具体的年月(如2010-01)而非仅月份数字,只需修改提取月份的逻辑,改为提取年月标识后再匹配即可,示例代码如下:

# 假设月度DataFrame索引为YYYY-MM格式
daily_df['year_month'] = daily_df['date'].dt.to_period('M')
daily_df = daily_df.merge(monthly_df, left_on='year_month', right_index=True, how='left')
daily_df = daily_df.set_index('date').drop('year_month', axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:00:46