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

能否用Pandas的groupby对DataFrame列表列的每个元素分组并统计数量?

用groupby实现列表元素的分组统计

要按C列列表中的单个元素分组统计行数,你需要先将列表拆分为单独的行,再进行groupby操作,具体步骤如下:

完整代码示例

import pandas as pd

# 构造目标DataFrame
data = {
    'A': ['CA', 'NY', 'VA'],
    'B': ['Jon', 'Sarah', 'Vox'],
    'C': [['sales', 'engineering'], ['engineering', 'IT'], ['services', 'engineering']]
}
df = pd.DataFrame(data)

# 拆分列表元素后分组统计
result = df.explode('C').groupby('C').size()

# 输出统计结果
print(result)

输出结果

C
engineering    3
IT             1
sales          1
services       1
dtype: int64

操作说明

  1. 拆分列表元素:df.explode('C')会把C列的每个列表元素拆成独立行,原DataFrame的每行会根据列表长度拆分为多行,其他列的值重复填充。拆分后的中间数据如下:
ABC
CAJonsales
CAJonengineering
NYSarahengineering
NYSarahIT
VAVoxservices
VAVoxengineering
  1. 分组统计:对拆分后的C列执行groupby('C').size(),即可按单个元素分组并统计对应的行数。

如果需要转换成你展示的key: value文本格式,可添加以下代码:

for item, count in result.items():
    print(f"{item}: {count}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:01:15