如何使用pandas实现医院名称去重并合并对应行数据?
用Pandas实现医院名称去重并合并对应行数据
核心思路
通过groupby按医院名称分组,对每组的其他列数据执行合并(或对应聚合操作),最后将分组结果转回常规DataFrame并保存。
代码实现
- 导入依赖并读取数据
import pandas as pd # 读取输入Excel文件,替换为你的文件路径 df = pd.read_excel("输入文件.xlsx")
- 分组合并数据
根据你的实际数据结构选择对应方式:
- 通用文本列合并(去重+过滤空值):适用于所有非医院名称列都是文本类的场景
# 按Hospital Name分组,将其他列的非空唯一值用逗号分隔合并 merged_df = df.groupby("Hospital Name").agg( lambda x: ", ".join(x.dropna().unique()) ).reset_index()
- 指定列自定义聚合:针对混合类型列(如数值列需求和、文本列需合并)
# 定义各列的聚合规则,根据你的实际列名调整 agg_rules = { "科室": lambda x: ", ".join(x.dropna().unique()), # 合并科室并去重 "月就诊量": "sum", # 数值列求和 "联系电话": lambda x: ", ".join(x.dropna().unique()) # 合并联系电话 } merged_df = df.groupby("Hospital Name").agg(agg_rules).reset_index()
- 保存结果
# 将处理后的数据保存为新Excel文件,不保留索引列 merged_df.to_excel("输出文件.xlsx", index=False)
细节调整
- 不需要合并时去重:去掉代码中的
unique() - 需要保留空值:去掉
dropna() - 自定义分隔符:将
", "替换为"; "等你需要的符号
内容的提问来源于stack exchange,提问作者Andrew8460958
相关产品推荐
相关产品推荐

