pandas:统计一列列表中列表的每个元素的唯一出现次数

我有一个包含一列列表的数据框,如下所示:


df

     pos_tag

0    ['Noun','verb','adjective']

1    ['Noun','verb']

2    ['verb','adjective']

3    ['Noun','adverb']

...

我想得到的是每个唯一元素作为字典出现在整个列中的次数:


desired output:

my_dict = {'Noun':3, 'verb':3, 'adjective':2, 'adverb':1}


蝴蝶不菲
浏览 92回答 2
2回答

慕运维8079593

与和Series.explode一起使用:Series.value_countsSeries.to_dictfreq = df['pos_tag'].explode().value_counts().to_dict()结果:# print(freq) {'Noun':3, 'verb':3, 'adjective':2, 'adverb':1}

ABOUTYOU

为了提高性能,请使用Counter嵌套列表的展平值:from collections import Countermy_dict = dict(Counter([y for x in df['pos_tag'] for y in x]))print (my_dict){'Noun': 3, 'verb': 3, 'adjective': 2, 'adverb': 1}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python