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

Pandas pivot重塑DataFrame报索引含重复条目无法变形的解决方法

报错原因

pivot 方法要求index与columns参数指定的列的组合值必须全局唯一,你的数据集里存在至少一组(id, question)重复出现的记录,因此无法直接重塑。

解决方案

方案1:先去重再用pivot

如果重复的(id, question)记录对应的answer完全一致,先删除重复项再执行原逻辑即可:

# 先按id和question去重
df = df.drop_duplicates(subset=['id', 'question'])
# 执行原pivot逻辑
df_result = df.pivot(index='id', columns='question', values='answer').reset_index()
# 可选:移除columns的name标识
df_result.columns.name = None

方案2:用pivot_table指定聚合规则

如果同一个(id, question)对应多个不同的answer,你需要明确聚合规则后用pivot_table实现:

df_result = df.pivot_table(
    index='id',
    columns='question',
    values='answer',
    # 聚合规则可按需替换:'last'取最后一个值,lambda x: ','.join(x)合并所有值
    aggfunc='first'
).reset_index()
df_result.columns.name = None

执行以上任意一种符合你数据场景的代码,都可以得到你需要的宽表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:15:02