如何使用按日期和类别分组,以及按年份和类别使用3的数字,并且每年的销售额应该是谁的总和。
我尝试使用groupby,但没有成功
这是输入:
date category sales
------------------------------------
0 20/2/2014 weekdays 120.96
1 05/03/2015 weekend 120.96
2 19/05/2014 weekdays 75.99
3 09/02/2014 weekend 60.76
4 15/03/2015 weekdays 49.01
5 03/03/2014 weekend 50.3
6 09/05/2014 weekend 203.2
df2 = df.groupby(['date','category'], as_index=False)['sales'].sum()
print (df2)
使用此代码后,代码将引发错误。
输出应如下所示:
date category sales
-------------------------
2014 weekdays 196.95
2014 weekend 314.26
2015 weekdays 49.01
2015 weekend 120.96
答案 0 :(得分:2)
在df.groupby()
下使用series.dt.year
:
#df['date'] = pd.to_datetime(df['date']) : if date is object dtype
df.groupby([df.date.dt.year,'category'])['sales'].sum().reset_index()
date category sales
0 2014 weekdays 196.95
1 2014 weekend 314.26
2 2015 weekdays 49.01
3 2015 weekend 120.96