我有一個包含一列列表的數據框,如下所示:df pos_tag0 ['Noun','verb','adjective']1 ['Noun','verb']2 ['verb','adjective']3 ['Noun','adverb']...我想得到的是每個唯一元素作為字典出現在整個列中的次數:desired output:my_dict = {'Noun':3, 'verb':3, 'adjective':2, 'adverb':1}
2 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
與和Series.explode
一起使用:Series.value_counts
Series.to_dict
freq = df['pos_tag'].explode().value_counts().to_dict()
結果:
# print(freq) {'Noun':3, 'verb':3, 'adjective':2, 'adverb':1}

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
為了提高性能,請使用Counter嵌套列表的展平值:
from collections import Counter
my_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}
添加回答
舉報
0/150
提交
取消