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

如何为pandas dataframe列中每个唯一值添加重复的月份行?

实现方案

pandas可以直接实现该需求,最便捷的方式是使用笛卡尔积合并:

import pandas as pd

# 原始数据框
df1 = pd.DataFrame({'Part':['Wheel', 'Door', 'Light', 'Seatbelt']})
# 定义待匹配的月份列表
month_list = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August']

# 方法1:cross合并(pandas 1.2.0及以上版本支持,代码最简洁)
df2 = df1.merge(pd.DataFrame({'Month': month_list}), how='cross')

如果使用的是更低版本的pandas,可通过多级索引方式兼容实现:

# 方法2:低版本pandas兼容实现
parts = df1['Part'].unique()
# 生成Part和月份的笛卡尔积索引
full_index = pd.MultiIndex.from_product([parts, month_list], names=['Part', 'Month'])
# 转换为目标数据框
df2 = full_index.to_frame(index=False)

后续合并补充

你后续要补全0值展示的需求,可以直接用上面得到的df2作为左表,左连接你的业务统计数据框,再对数值列执行.fillna(0),就能实现所有Part+月份的组合完整展示、缺失值自动补0的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:57:04