【发布时间】:2021-03-14 08:49:05
【问题描述】:
采用以下 csv 输入(出于显而易见的原因,未包含所有数据点):
"Date","Production"
"1962-01",589
"1962-02",561
...
"1975-11",797
"1975-12",843
我正在尝试使用按月分组来格式化箱线图中的以下数据。但不是显示 01 02 .. 11 12,我希望它在 x 标签上显示一月、二月...。
为此,我将数据放入数据框并将“日期”转换为 pd.to_datetime。然后将其设置为索引。
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index("Date")
然后,我创建了一个名为“Month”和“Alph_Month”的新列
df["Month"] = df.index.month
df["Alph_Months"] = df.index.strftime('%B')
此时我有一个如下所示的数据集:
Production Month Alph_Months
Date
1962-01-01 589 1 January
1962-02-01 561 2 February
1962-03-01 640 3 March
1962-04-01 656 4 April
要创建箱线图,我尝试了以下方法:
df[['Production', 'Alph_Months']].boxplot(figsize=(16,6),by='Alph_Months', grid=True);
但是,这似乎按字母顺序(4 月、8 月、12 月...)而不是 1 月、2 月、3 月等的顺序返回标签。
有没有办法让箱线图按月列排序值,但按 Alph_Months 列设置标签值?
【问题讨论】:
标签: python pandas dataframe boxplot