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

如何为Pandas日度时间序列按国家补全NaN值直至当年年末

按国家补全日度时间序列到年末的实现方案

使用pandas操作即可实现需求,具体步骤和代码如下:

前置准备

首先确保你已经导入pandas库,且对原始数据做基础预处理:

import pandas as pd

# 1. 将日期列转换为datetime格式
df['XXX Day'] = pd.to_datetime(df['XXX Day'])
# 2. 可选:如果数据包含非2021年的记录,先过滤仅保留2021年数据
df = df[df['XXX Day'].dt.year == 2021]

核心实现(推荐方案)

通过生成国家+全量日期的笛卡尔积,再匹配原数据的方式实现,不受原数据时间范围限制,可直接补全到2021年末:

# 生成2021年全年的每日日期序列
all_dates = pd.date_range(start='2021-01-01', end='2021-12-31', freq='D')
# 提取所有去重的国家列表
all_countries = df['From Country'].unique()
# 生成国家和日期的全量组合多重索引
full_index = pd.MultiIndex.from_product([all_countries, all_dates], names=['From Country', 'XXX Day'])
# 重索引匹配原数据,缺失值自动填充为NaN
df_result = df.set_index(['From Country', 'XXX Day']).reindex(full_index).reset_index()

# 可选:如果需要将NaN替换为空字符串,执行以下代码
df_result['Quantity'] = df_result['Quantity'].fillna('')

说明

最终得到的df_result就是需求结果,每个国家都包含2021年1月1日到12月31日的全量日期,原有数据的Quantity保留,缺失日期对应的Quantity默认填充为NaN,也可根据需求替换为空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:15:03