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

Pandas分组后将组内值转为逗号分隔格式的实现问询

解决方案

你可以用groupby结合agg方法,同时实现计数和产品的合并,轻松得到你想要的格式~

先直接上可以运行的代码:

import pandas as pd

# 你的示例数据
companies = ['Microsoft', 'Google', 'Amazon', 'Microsoft', 'Facebook', 'Google']
products = ['OS', 'Search', 'E-comm', 'X-box', 'Social Media', 'Android']
df = pd.DataFrame({'company': companies, 'product': products})

# 核心分组聚合逻辑
result = df.groupby('company').agg(
    count=('product', 'size'),
    product=('product', ', '.join)
).reset_index()

print(result)

运行后输出的结果完全符合你的期望:

company  count          product
0      Amazon      1           E-comm
1    Facebook      1    Social Media
2      Google      2  Search, Android
3  Microsoft      2       OS, X-box

代码细节解释

  • groupby('company'):把相同公司的行归为一组,是后续操作的基础。
  • agg():聚合方法,这里我们通过字典指定了两个对product列的操作:
    • count=('product', 'size'):新建一列count,用size()统计每个分组的总行数(也就是该公司的产品数量),如果你的数据没有空值,用count()也能得到一样的结果。
    • product=('product', ', '.join):新建一列product,用, 作为分隔符,把分组里的所有产品名称拼接成一个字符串。
  • reset_index():把原本作为索引的company变回普通列,让输出格式和你想要的完全匹配。

这样就搞定啦,刚接触Python的话可以多试试agg的不同用法,它在处理分组后的多需求聚合时特别好用~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:37:56