按月订购 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")
我有这个销售数据框:
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")