如何计算一列列表中字符串单词的数量?

我有一个像这样的数据框:


Artist        Genre


  A          ['Pop','Rock']

  B          ['Pop']

  C          ['Rock', 'Electro']

我想在 dataframe 中找到每个流派的频率,即:


Genre         Count


'Pop'           2

'Rock'          2 

'Electro'       1

我试过这个:


s = pd.Series(Counter([y for x in raw_data_genre['Genre'] for y in x]))


s

但我最终得到了一些奇怪的东西


[     6

'    10

p     4

o     5

p     4

有什么帮助吗?

我知道这是因为元素上的引号,这是一个预先给定的数据集,所以我需要删除它们?我试过使用其他类似的问题解决方案,但它们似乎不起作用,因此我为什么要问这个。


婷婷同学_
浏览 78回答 1
1回答

慕码人8056858

试试这个,将字符串转换为列表使用literal_eval+Series.explode将列表的每个元素转换为一行,然后Series.value_counts获取计数from ast import literal_evalprint(df.Genre.apply(literal_eval).explode().value_counts())Pop        2Rock       2Electro    1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python