按年和月分组熊猫数据框

时间:2018-11-14 08:40:51

标签: python pandas matplotlib pandas-groupby

我有以下数据框dft,其中有两列“ DATE”和“ Income”

dft = pd.DataFrame(chunk, columns=['DATE','Income'])
dft['DATE'] =  pd.to_datetime(dft['DATE'], format='%m/%d/%Y')
_= dft.sort_values(by='DATE', ascending=1)

我现在正在尝试汇总每年每个月的数据。这意味着新数据框具有两列,例如2012年1月,然后是该年该月的收入。我可以使用以下代码在一个月内完成此操作,但这并未考虑该月份所在的年份。有什么方法可以按月份和年份分组?

monthlyincome = dft.groupby(dft['DATE'].dt.strftime('%B')) 
[['Income']].sum().reset_index()

最终目标是将其放入条形图中。我当时想转换成两个列表,然后使用类似的东西:

plt.bar(xaxis,yaxis)

如何使它正常工作?

2 个答案:

答案 0 :(得分:0)

尝试一下:

periods = dft.DATE.dt.to_period("M")
group = dft.groupby(periods).sum()

这应该使您返回年份和月份的总和。

答案 1 :(得分:0)

最终解决方案为:

dft = pd.DataFrame(chunk, columns=['DATE','Income'])
dft['DATE'] =  pd.to_datetime(dft['DATE'], format='%m/%d/%Y')
_= dft.sort_values(by='DATE', ascending=1)

periods = dft.DATE.dt.to_period("M")
group = dft.groupby(periods).sum()
group = group.reset_index()

感谢玛雅克。