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

如何在Pandas中按相同公司名聚合合并对应国家列值?

合并同公司的国家字段解决方案

问题背景

原始数据集:

countrycompany_namecompany_sizecompany_activity
DEMcDonalds50food
FRMcDonalds50food
NL7 eleven5food

需求:将同一公司的国家字段合并为逗号分隔的字符串,得到如下结果:

countrycompany_namecompany_sizecompany_activity
DE,FRMcDonalds50food
NL7 eleven5food

用户尝试了以下冗余代码,但无法返回完整数据集:

df_cross = df.groupby(["company_name"]).agg({"country": ",".join, "company_activity": ",".join, "company_size": "first"}).reset_index().groupby(["country"]).agg({"company_name": "first", "company_activity": ",".join, "company_size": "first"}).reset_index()

简洁优雅的解决方案

只需基于company_name、company_size、company_activity这三个值一致的字段分组,直接合并country字段即可:

df_merged = df.groupby(["company_name", "company_size", "company_activity"], as_index=False).agg({"country": ",".join})

代码说明

  • 分组键选择三个不会变化的字段,确保同一组内是完全匹配的同公司记录
  • as_index=False参数让分组结果直接返回DataFrame,无需额外调用reset_index()
  • 仅对country字段执行","join合并,其他字段保持原有值,避免不必要的操作

该代码逻辑清晰,执行高效,能准确得到你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:50:13