我有一個像這樣的數據框: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
提交
取消