按月订购 Pandas 个图表

Order Pandas chart by month

我有这个销售数据框:

Date                datetime64[ns]
Day                          int64
Month                       object
Year                         int64
Customer_Age                 int64
Age_Group                   object
Customer_Gender             object
Country                     object
State                       object
Product_Category            object
Sub_Category                object
Product                     object
Order_Quantity               int64
Unit_Cost                    int64
Unit_Price                   int64
Profit                       int64
Cost                         int64
Revenue                      int64
dtype: object

当我尝试绘制每月的销售额时:

sales["Month"].value_counts().plot(kind="bar")

我得到 this chart 其中月份不是按时间顺序排列的,而是按数量排列的。我该怎么做?

我也试过使用“sort=False”作为参数:

sales["Month"].value_counts(sort=False).plot(kind="bar")

但我得到 this chart。

谢谢!

  • 已生成一些示例数据
  • reindex() value_counts()系列按你想要的顺序。
sales = pd.DataFrame({"Month": ["December", "November", "December", "June", "May", "October", "October", "October", "August", "March", "August", "June", "January", "December", "May", "January", "February", "March", "April", "April", "November", "October", "January", "July", "April", "February", "March", "March", "April", "January", "April", "January", "August", "March", "March", "May", "March", "January", "May", "November", "October", "January", "October", "February", "August", "December", "June", "August", "April", "August", "May", "December", "June", "April", "March", "August", "February", "October", "November", "July", "December", "April", "May", "July", "October", "June", "March", "May", "February", "September", "September", "March", "September", "April", "September", "January", "May", "November", "June", "December", "February", "January", "July", "January", "November", "October", "August", "December", "August", "August", "January", "August", "February", "April", "August", "March", "December", "May", "June", "July", "February", "September", "November", "January", "November", "May", "January", "July", "June", "June", "April", "January", "March", "May", "December", "August", "August", "March", "April", "June", "November", "February", "August", "March", "November", "June", "June", "May", "April", "December", "June", "December", "November", "March", "November", "June", "October", "October", "March", "August", "September", "October", "June", "January", "January", "October", "July", "March", "September", "December", "December", "March", "December", "November", "April", "March", "July", "September", "January", "May", "February", "May", "April", "April", "December", "November", "December", "October", "August", "January", "June", "March", "May", "September", "November", "November", "July", "November", "September", "May", "April", "January", "October", "February", "April", "April", "May", "January", "January", "December", "February", "March", "February", "September", "October", "April", "November", "April", "August", "May"]})

sales["Month"].value_counts(sort=False).reindex(
    pd.Series(pd.date_range("1-jan-2021", freq="M", periods=12)).dt.strftime("%B")
).plot(kind="bar")