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

如何用周度日期替换月度DataFrame日期并按条件填充数据?

解决方案

步骤1:统一日期匹配标识

先给两个DataFrame添加年月关联列,用来匹配同一国家、同一月份的数据:

import pandas as pd

# 若日期列不是datetime类型,先转换
a['date'] = pd.to_datetime(a['date'])
b['date'] = pd.to_datetime(b['date'])

# 给a提取年月(如2020-01)作为匹配键
a['year_month'] = a['date'].dt.to_period('M')

# 给b提取周度日期所属的年月,作为匹配键
b['year_month'] = b['date'].dt.to_period('M')

步骤2:关联数据并填充值

通过merge方法按country和year_month关联两个DataFrame,保留目标列:

# 合并数据,用b的周度日期、country关联a的barley_yie值
result = pd.merge(
    b[['date', 'country', 'year_month']],
    a[['country', 'year_month', 'barley_yie']],
    on=['country', 'year_month'],
    how='left'
)

# 删除临时关联列,整理成目标格式
result = result.drop('year_month', axis=1)

步骤3:验证结果

最终生成的resultDataFrame会呈现你需要的结构:每个周度日期对应所属月份的barley_yie值,按国家维度匹配填充,示例如下:

datecountrybarley_yie
2022-01-01Argentina3.33
2020-01-07Argentina3.33
2020-01-14Argentina3.33

补充处理

如果存在周度日期找不到对应月份数据的情况,barley_yie会显示NaN,可根据需求用fillna补充默认值:

# 示例:用0填充空值,也可替换为其他合理值
result['barley_yie'] = result['barley_yie'].fillna(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:31:16