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

如何使用pandas合成表格,实现相同姓名条目去重并关联全部对应信息

用户提供的表格参考图

pandas 操作实现方案

以下两种常见场景的处理代码,你可以根据自己的表格结构调整使用:

场景1:单表内John条目重复,需合并全部关联信息

  • 导入pandas并读取你的表格数据
import pandas as pd
# 替换为你的表格文件路径,csv格式用read_csv读取
df = pd.read_excel("你的表格文件路径.xlsx")
  • 对John条目做聚合去重,同时保留全部关联信息
# 替换代码中的「姓名列名」为你表格里存姓名的列实际名称
# 同字段多值默认用分号拼接,你可以自行调整分隔符
john_agg = df[df["姓名列名"] == "John"].groupby("姓名列名", as_index=False).agg(
    lambda x: ";".join(x.dropna().unique().astype(str))
)
# 保留其余非John的原始行,合并得到最终结果
other_rows = df[df["姓名列名"] != "John"]
final_result = pd.concat([other_rows, john_agg], ignore_index=True)

场景2:多表关联后John仅保留唯一行

假设你有两张表:基础信息表df_base存姓名等基础属性,详情表df_detail存John的多条关联详情:

  • 先聚合详情表的同姓名数据再关联
detail_agg = df_detail.groupby("姓名列名", as_index=False).agg(
    lambda x: ";".join(x.dropna().unique().astype(str))
)
# 关联两张表,得到每个姓名仅一行的全量信息
final_result = pd.merge(df_base, detail_agg, on="姓名列名", how="left")

聚合逻辑可灵活调整:如果要取同字段的最新值就把lambda那段替换为"last",要取数值总和就替换为"sum",要取第一个出现的值就替换为"first"。

处理完成后可以用final_result.to_excel("处理结果.xlsx", index=False)导出为本地文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 23:54:05