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

使用Python Pandas为CSV中每个ID补全缺失月份字段的简便方法

实现思路

直接用Pandas内置的索引重排功能即可实现,不需要手动遍历id和月份,代码简洁且执行效率远高于循环方案。
核心逻辑是先生成「所有id × 1-12月」的完整组合作为目标索引,再将原始数据按该索引重排,缺失的数值会自动填充为NaN。

代码示例
import pandas as pd

# 这里是你的原始数据,也可以替换为自己读入CSV的代码
raw_data = [
    [1,4,9], [1,5,4], [1,6,7],
    [2,1,9], [2,2,9], [2,3,8], [2,4,6]
]
df = pd.DataFrame(raw_data, columns=['id', 'month', 'average tree growth (cm)'])

# 1. 生成所有id × 1-12月的完整组合索引
full_index = pd.MultiIndex.from_product(
    [df['id'].unique(), range(1,13)], # 第一个元素是所有唯一id,第二个是1-12的月份列表
    names=['id', 'month'] # 索引名要和原始数据的对应列名一致
)

# 2. 原始数据设双索引后重排,重置索引即可得到目标格式
result_df = df.set_index(['id', 'month']).reindex(full_index).reset_index()
补充说明

输出result_df即可看到每个id都有1-12月的完整记录,原数据中不存在的月份对应增长值自动填充为NaN,完全符合适配Bokeh绘图的需求。
如果后续需要填充默认值而非NaN,只需要在reindex方法中添加fill_value参数即可,比如reindex(full_index, fill_value=0)就会把缺失值填为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:48:03