如何删除DataFrame重复行并合并同列值的Python实现咨询
Pandas DataFrame 重复行合并去重实现代码
1. 整行完全重复的去重
如果冗余行是整行内容完全一致的情况,直接调用drop_duplicates方法即可快速去重:
import pandas as pd # 读取原始数据,可根据你的文件格式替换为read_csv、read_table等方法 df = pd.read_excel("原始数据文件路径.xlsx") # 去重,keep参数可选'first'(保留首次出现的行)、'last'(保留最后出现的行)、False(删除所有重复行) df_dedup = df.drop_duplicates(keep="first")
2. 主键列重复、其余列内容合并
如果是部分标识列(如ID、姓名等唯一判断字段,即主键列)值重复,需要合并其余列的对应内容,按如下方式实现:
# 替换为你用来判断行重复的主键列列表,比如['用户ID', '订单编号'] primary_key = ['用户ID'] # 定义聚合规则:非主键列的多个有效值用顿号拼接,空值自动忽略 agg_func = { col: lambda x: "、".join(x.dropna().astype(str).unique()) for col in df.columns if col not in primary_key } # 按主键分组聚合,得到合并后的结果 df_merged = df.groupby(primary_key, as_index=False).agg(agg_func)
3. 结果导出
处理完成后可导出为常用格式:
# 导出为Excel df_merged.to_excel("处理后结果.xlsx", index=False) # 导出为UTF-8编码的CSV,适配中文打开 df_merged.to_csv("处理后结果.csv", index=False, encoding="utf-8-sig")
内容的提问来源于stack exchange,提问作者Jie Mei
相关产品推荐
相关产品推荐

