如何使用过滤器和日期转换在Python中按聚合进行分组

时间:2019-04-02 14:25:59

标签: python pandas

我有以下数据集,并希望根据从日期算起的供应商和月份对值求和,同时还应用一个仅返回每月第一个星期一的过滤器。

date      vendor   value
07/01/19  Amazon   10
07/01/19  Amazon   500
04/02/19  ebay     60
04/03/19  Amazon   130
06/03/19  ebay     20
25/03/19  pcworld  250

我相信大熊猫将是最好的前进方式,但是我是python的新手,所以不知道。

vendor  month   value
Amazon  1       510
Amazon  3       130
ebay    2       60

1 个答案:

答案 0 :(得分:1)

您可以这样做:

df['date'] = pd.to_datetime(df['date'], dayfirst=True)
#You data appears to be dayfirst

df_filt = df.where((df['date'].dt.dayofweek == 0) & (df['date'].dt.day < 8)).dropna(how='all')
#Filter out all data whre date isn't on monday nor in the first seven day of a month
df_fil.groupby(['vendor',df_fil['date'].dt.month])['value'].agg('sum').reset_index().rename(columns={'date':'month'})
#groupby with agg

输出:

   vendor  month  value
0  Amazon      1  510.0
1  Amazon      3  130.0
2    ebay      2   60.0