我有一个像这样的数据框: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' 10p 4o 5p 4有什么帮助吗?我知道这是因为元素上的引号,这是一个预先给定的数据集,所以我需要删除它们?我试过使用其他类似的问题解决方案,但它们似乎不起作用,因此我为什么要问这个。
1 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
试试这个,将字符串转换为列表使用literal_eval
+Series.explode
将列表的每个元素转换为一行,然后Series.value_counts
获取计数
from ast import literal_eval
print(df.Genre.apply(literal_eval).explode().value_counts())
Pop 2
Rock 2
Electro 1
添加回答
举报
0/150
提交
取消