Seaborn 不绘制头部而是绘制整个数据框

Seaborn not plotting head but instead plots whole dataframe

我有一个数据帧,我 groupby() 计数然后 sort_values() 按计数。然后,我将此数据框的 head()tail() 绘制在 seaborn barplot() 上。但是,当我尝试绘制头部时,它会显示整个原始数据框,而不仅仅是 head() 个产品。

most_popular_products= (items
 .groupby("product_name")
 .product_name.agg(["count"])
 .reset_index()
 .sort_values(by="count", ascending=False, ignore_index=True)
)
top_5_products = most_popular_products.head()
bottom_5_products = most_popular_products.tail()

然后我绘制:

plt.figure(figsize=(20,6))

sns.barplot(x=top_5_products["product_name"], y=top_5_products["count"])

我怎么只能绘制前5个?

因此,当您使用 head() 或获取任何数据片段时,pandas 列似乎仍在跟踪有多少类别。

因此,如果您选择前 5 个,然后列出列的类型,它将显示它仍然由 20 多个类别组成。

所以我不得不top_5_products.product_name = top_5_products.product_name.cat.remove_unused_categories()

这只为您提供了 5 个类别的列,然后您就可以绘图了!