我有一个以下形式的数据集:
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的列。
答案 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')
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