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

如何用Pandas统计DataFrame列表列中各元素的唯一出现次数

解决DataFrame列表列元素出现次数统计问题

嘿,这事儿好办!要统计你那列包含列表的DataFrame里每个元素的总出现次数,我给你分享两个实用的方法,都能得到你想要的字典结果:

方法一:用explode() + value_counts()(最推荐)

这是Pandas里最直观高效的写法,先把列表列“展开”成每行一个元素,然后直接统计频次,最后转成字典就行:

import pandas as pd

# 先构造你的示例DataFrame
df = pd.DataFrame({
    'pos_tag': [['Noun','verb','adjective'], ['Noun','verb'], ['verb','adjective'], ['Noun','adverb']]
})

# 核心操作:展开列→统计次数→转字典
my_dict = df['pos_tag'].explode().value_counts().to_dict()

print(my_dict)
# 输出正好是你要的:{'Noun': 3, 'verb': 3, 'adjective': 2, 'adverb': 1}

这个方法处理大数据量也很高效,完全利用Pandas的向量操作,比手动循环快得多。

方法二:手动迭代统计(适合理解底层逻辑)

如果你想自己控制计数过程,或者不想依赖Pandas的高级方法,可以用双层循环手动累加:

my_dict = {}
# 遍历每一行的列表
for tags_list in df['pos_tag']:
    # 遍历列表里的每个元素
    for tag in tags_list:
        # 用get方法避免KeyError,不存在的元素默认计数0,再加1
        my_dict[tag] = my_dict.get(tag, 0) + 1

print(my_dict)
# 同样得到预期的字典结果

这个方法更基础,适合新手理解计数的逻辑,小数据量下完全够用。

小提示

如果你的元素存在大小写不一致的情况(比如'Verb'和'verb'),可以在统计前统一转换大小写,比如把tag改成tag.lower(),这样就能把相同语义的元素归为一类啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:37:39