按月绘制条形图-Matplotlib

时间:2018-12-09 05:35:50

标签: python pandas matplotlib

我有一个以下形式的数据集:

Date        A   B   C
01/04/2012  2   5   Y
05/04/2012  3   4   Y
06/05/2012  7   6   Y
09/05/2012  8   2   N
11/05/2012  1   4   Y
15/06/2012  5   4   Y

这会继续出现更多行。

我想绘制一个条形图,其日期在底轴上转换为仅显示月份(即4月,5月,7月),然后在y轴上,我想要A和B列之和的平均值因此,4月为7(两个实例总共14个),5月为9.33(3个实例总共28)。

我真的在如何做到这一点上苦苦挣扎,我不希望不要创建另一个汇总A和B的列。

1 个答案:

答案 0 :(得分:1)

您可以在groupby上使用month_name,然后使用mean + eval

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df.groupby([df['Date'].dt.month_name()], sort=False).mean().eval('A+B')\
  .plot(kind='bar')

enter image description here


print(df.groupby([df['Date'].dt.month_name()], sort=False).mean().eval('A+B'))
Date
April    7.000000
May      9.333333
June     9.000000
dtype: float64