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

如何用Python识别CSV重复项并将对应数据整理至对应列

用Python合并CSV重复行的对应数据

我有一个包含重复条目的CSV文件,需要识别重复字段并把对应数据整理到同一行的不同列中。

原CSV表格内容:

Column AColumn BColumn CColumn D
1004.1
1004.3
1004.2

期望处理后的表格:

Column AColumn BColumn CColumn D
1004.132

我已经写出了部分代码,能识别重复项,但不知道后续怎么合并数据,现有代码如下:

import pandas

df = pandas.read_csv(csv_file, names=fields, index_col=False)

df = df[df.duplicated([column1], keep=False)]

df.to_csv(csv_file2, index=False)

你当前的代码仅筛选出了含重复值的行,未完成数据合并的核心操作。可以通过Pandas的分组+聚合方法实现需求,具体代码和步骤如下:

完整实现代码

import pandas as pd

# 读取CSV文件,若原始文件无表头,需添加header=None并手动指定列名
df = pd.read_csv("input.csv")

# 按Column A分组,将每组的Column B值转为列表后拆分成多列
grouped_data = df.groupby("Column A")["Column B"].apply(list).apply(pd.Series)

# 重命名列名,匹配期望的Column B/C/D格式
grouped_data.columns = [f"Column {chr(66 + i)}" for i in range(grouped_data.shape[1])]

# 将Column A从索引转回普通列,生成最终结果
result_df = grouped_data.reset_index()

# 保存处理后的CSV
result_df.to_csv("output.csv", index=False)

代码说明

  • groupby("Column A")["Column B"].apply(list):把同一Column A对应的所有Column B值收集为列表
  • apply(pd.Series):将列表横向拆分为多列,每个元素对应一列
  • 列名重命名逻辑用chr(66+i)自动生成B、C、D等列名,可适配更多重复行的场景
  • 若原始CSV无表头,读取时需修改为df = pd.read_csv("input.csv", header=None),并手动指定列名:df.columns = ["Column A", "Column B", "Column C", "Column D"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:50:26