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

使用pandas将单列数据转为多列时pivot报重复索引错误的求助

报错原因

该报错触发条件为同一个ID + Test的组合存在多条重复数据,pivot方法未内置重复值聚合逻辑,无法直接完成表结构重塑。

可行解决方案

方案1:带聚合逻辑转宽表

如果同一个ID的同一个检测项目存在多条有效结果,可根据业务需求指定聚合规则(取第一个值、取平均值、拼接所有值等),使用pivot_table实现转换:

import pandas as pd
# 示例使用first取第一条结果,可按需替换为'mean'/'max'/lambda x: '/'.join(x)等规则
wide_df = pd.pivot_table(
    df,
    index="ID",
    columns="Test",
    values="Result",
    aggfunc="first",
    fill_value="NA" # 缺失检测结果直接填充为NA
).reset_index() # 如需将ID从索引转为普通列,保留该行即可

方案2:先去重再转宽表

如果重复数据为录入冗余,业务上同一ID的同一检测项目仅需保留一条结果,先去重再调用pivot即可:

# 按ID、Test组合去重,keep参数可指定保留first/last条数据
df_dedup = df.drop_duplicates(subset=["ID", "Test"], keep="first")
wide_df = df_dedup.pivot(index="ID", columns="Test", values="Result").fillna("NA").reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:15:03