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

使用groupby合并TransactionId重复行触发cannot reindex from a duplicate axis错误

解决groupby聚合时的"cannot reindex from a duplicate axis"错误

问题根源

你的DataFrame存在重复列名(示例中可见两个Others列),使用agg(' '.join)后会生成重复列名,执行reset_index()时触发索引重排错误。

解决步骤

1. 重命名重复列

给重复列添加唯一后缀,避免列名冲突:

# 遍历列名,为重复列生成唯一名称
cols = []
col_counts = {}
for col in ldf_object_page_data.columns:
    if col in col_counts:
        col_counts[col] += 1
        cols.append(f"{col}{col_counts[col]}")
    else:
        col_counts[col] = 1
        cols.append(col)
# 替换原DataFrame的列名
ldf_object_page_data.columns = cols

2. 执行聚合操作

列名修复后,再运行你的groupby代码:

# 确保columns是你需要聚合的列列表(已无重复)
result_df = ldf_object_page_data.groupby('TransactionId')[columns].agg(' '.join).reset_index()

备选方案:删除冗余重复列

如果重复列是无效数据,可直接保留每个重复列的第一个实例:

# 移除重复列,仅保留首次出现的列
ldf_object_page_data = ldf_object_page_data.loc[:, ~ldf_object_page_data.columns.duplicated()]
# 执行聚合
result_df = ldf_object_page_data.groupby('TransactionId')[columns].agg(' '.join).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:30:42