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