提问者:小点点

如何统计一列列表中的字符串单词数? [副本]


我的数据帧如下:

Artist        Genre

  A          ['Pop','Rock']
  B          ['Pop']
  C          ['Rock', 'Electro']

我想在数据帧中找到每个流派的频率,例如:

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

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


共1个答案

匿名用户

尝试一下,使用literal_eval+series.explode将字符串转换为列表。explode将类列表的每个元素转换为行,然后是series.value_counts以获取计数

from ast import literal_eval

print(df.Genre.apply(literal_eval).explode().value_counts())

Pop        2
Rock       2
Electro    1