我正在使用一个节目数据库,我想在条形图上画出每种类型在所有节目中使用的次数,这样我就可以显示最流行的类型。我遇到的问题是,一个节目(一个节目是数据库中的一行(通常有不止一个流派(例如:['Comedy', 'Drama','Sci-Fi']
可能是一个节目的流派(。我想显示自己的流派(我使用jupyter和熊猫,matplotlib,…(。这是我迄今为止制作的代码:
bar_data = content2['genre'].value_counts().sort_values().tail(20)
bar_plot = bar_data.plot.barh(figsize=(20, 12))
bar_plot.set_title("genre poplularity")
bar_plot.set_xlabel("amount of times genre is used")
bar_plot.set_ylabel("genres")
plt.show()
我试图通过尝试在','
上拆分来解决这个问题,但这不起作用(可能是因为它不是字符串(。有人能帮我弄清楚如何绘制这样一列数组吗。
最终结果应该是这样的,但在条形图中
Comedy: 800
Adventure: 756
Sci-Fi: 698
Kids: 630
非常感谢您的时间和帮助
如果将每个流派作为一个列表,则可以使用explode()
从中获取单个字符串。然后使用value_counts()
。
content2['genre'].explode().value_counts()
希望这能有所帮助。
更新
看起来每一行都是一条字符串。因此,您首先必须去掉(strip('[]')
("[]",然后用逗号(split(',')
(分隔字符串以获得流派名称。这可以使用以下代码片段来完成。
content2['genre'].str.strip('[]').str.split(',')
希望这能有所帮助。