如何在特定时间范围内汇总python pandas数据帧

Lei*_*ove 5 python sum pandas

我有一个这样的数据框

df

    order_date    amount
0   2015-10-02      1
1   2015-12-21      15
2   2015-12-24      3
3   2015-12-26      4
4   2015-12-27      5
5   2015-12-28      10
Run Code Online (Sandbox Code Playgroud)

我想根据从df [“ order_date”]到df [“ order_date”] + 6天的范围对df [“ amount”]求和

    order_date    amount   sum
0   2015-10-02      1       1 
1   2015-12-21      15      27  //comes from 15 + 3 + 4 + 5
2   2015-12-24      3       22  //comes from 3 + 4 + 5 + 10
3   2015-12-26      4       19
4   2015-12-27      5       15
5   2015-12-28      10      10
Run Code Online (Sandbox Code Playgroud)

order_date的数据类型为datetime,曾尝试使用iloc,但它不能很好地工作...如果有人对谁从事此工作有任何想法/示例,请告诉我。

Tay*_*lor 0

扩展我的评论:

from datetime import timedelta

df['sum'] = 0
for i in range(len(df)):
    dt1 = df['order_date'][i]
    dt2 = dt1 + timedelta(days=6)
    df['sum'][i] = sum(df['amount'][(df['order_date'] >= dt1) & (df['order_date'] <= dt2)])
Run Code Online (Sandbox Code Playgroud)

可能有更好的方法来做到这一点,但它有效......