如何绘制一列数组,我需要计算在所有这些数组中出现不同值的次数



我正在使用一个节目数据库,我想在条形图上画出每种类型在所有节目中使用的次数,这样我就可以显示最流行的类型。我遇到的问题是,一个节目(一个节目是数据库中的一行(通常有不止一个流派(例如:['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(',')

希望这能有所帮助。

相关内容

最新更新