首先转换列
date
to_datetime并减去一个星期,因为我们要对日期之前一周进行累加,而不是该日期之前一周。
然后通过W-MON使用
groupbywith并进行聚合:
Grouper
sum
df['Date'] = pd.to_datetime(df['Date']) - pd.to_timedelta(7, unit='d')df = df.groupby(['Name', pd.Grouper(key='Date', freq='W-MON')])['Quantity'] .sum() .reset_index() .sort_values('Date')print (df) Name Date Quantity0 Apple 2017-07-10 903 orange 2017-07-10 201 Apple 2017-07-17 302 Orange 2017-07-24 40


