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

如何对DataFrame列表类型列中的每个元素执行值计数

实现DataFrame列表列的单元素频次统计

你之前使用df['item'].value_counts()只能统计完整列表的出现次数,是因为该方法默认把每一行的整个列表作为单个统计单位,你可以用以下两种方法实现需求:

方法1:使用explode展开后统计(推荐)

pandas的explode()方法可以将列表类型的列拆分为多行,每个列表元素单独占一行,之后直接调用value_counts()即可得到单个元素的统计结果:

import pandas as pd

# 展开item列
exploded = df.explode('item')
# 统计频次
res = exploded['item'].value_counts()

# 按你需要的格式输出
for item, count in res.items():
    print(item, count)

该方法逻辑清晰,性能较好,适合绝大多数场景。

方法2:拼接所有列表后统计

如果你的pandas版本较低不支持explode(),可以先将所有行的列表拼接成一个总列表,再转为Series做统计:

# 合并所有行的列表为一个总列表,转为Series
all_item_series = pd.Series(df['item'].sum())
res = all_item_series.value_counts()

注意该方法在数据量较大时性能会明显低于explode方案,仅做备选。

运行上述代码即可得到你预期的单元素频次统计结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:57:03