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

Python Pandas 如何对DataFrame指定列执行透视并保留关联列数据

问题解决方法

错误原因

  • 首先你编写的pivot代码存在基础语法错误:index=["index","week]中week后缺少闭合引号,整行代码末尾缺少右括号。
  • 核心报错逻辑是pandas的pivot方法要求传入的index参数对应的列组合必须能唯一标识每一行,如果你传入的索引组合存在重复值,就会触发长度不匹配的报错。

正确实现代码

你需要的效果是保留原数据的每一行,仅将description列拆分为多列,对应位置填充同行的id值,可以用以下两种方法实现:

方法1:修复pivot语法后运行,再重置索引

# 把原行的index列和week一起作为透视的唯一索引
res = df.pivot(index=["index", "week"], columns="description", values="id").reset_index()
# 清除列名的层级标记
res.columns.name = None

运行后空值会默认填充为NaN,你可以根据需要用空字符串替换,最终结构和你期望的效果完全一致。

方法2:用get_dummies快速实现

如果你不想处理pivot的索引逻辑,可以用独热编码乘以id列的方式实现,逻辑更简单不易出错:

# 生成description的独热编码,再和id列相乘得到对应填充值
dummies = pd.get_dummies(df['description']).mul(df['id'], axis=0)
# 拼接保留的原列和生成的透视列
res = pd.concat([df[['index', 'week']], dummies], axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:36:02