为DataFrame补全date列2002-2020缺失年份并填充对应列值
解决方案:补全DataFrame中2002-2020年缺失年份并填充对应列值
假设你的原始DataFrame名为df,可以通过以下步骤实现需求:
- 生成2002到2020年的完整年份序列,创建包含
country="Georgia"的基础DataFrame - 将基础DataFrame与原始DataFrame进行外连接,自动补全年份并保留已有数据
- 缺失的
party_count列会自动填充为NaN,无需额外操作
代码实现
import pandas as pd # 生成2002-2020年的完整年份数据 full_year_df = pd.DataFrame({ 'date': range(2002, 2021), # 2021为开区间,最终包含2002到2020所有年份 'country': 'Georgia' }) # 与原始DataFrame外连接,补全年份并合并数据 result_df = pd.merge(full_year_df, df, on=['date', 'country'], how='outer') # 查看处理后的结果 print(result_df)
特殊情况处理
如果你的date列是datetime类型而非整数年份,只需调整基础DataFrame的生成方式:
# 生成datetime类型的完整年份序列(以每年最后一天为例) full_year_df = pd.DataFrame({ 'date': pd.date_range(start='2002-12-31', end='2020-12-31', freq='Y'), 'country': 'Georgia' }) # 若需要将datetime转为整数年份,可添加以下行 full_year_df['date'] = full_year_df['date'].dt.year # 再执行合并操作 result_df = pd.merge(full_year_df, df, on=['date', 'country'], how='outer')
处理完成后,所有2002-2020年的年份都会被补全,country列统一填充为Georgia,缺失的party_count值自动为NaN。
内容的提问来源于stack exchange,提问作者Julieta M.
相关产品推荐
相关产品推荐

