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

2024-04-20 04:31:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了下面的数据集,并希望根据供应商和从日期开始的月份对值求和,同时应用一个只返回每个月的第一个星期一的过滤器。你知道吗

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

Tags: 数据方法过滤器amazondatevalue供应商vendor
1条回答
网友
1楼 · 发布于 2024-04-20 04:31:57

你可以这样做:

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

相关问题 更多 >