gpt4 book ai didi

python - 如何在特定时间范围内对python pandas数据帧求和

转载 作者:行者123 更新时间:2023-12-04 20:31:58 25 4
gpt4 key购买 nike

我有一个这样的数据框

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

我想根据从 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

order_date 的数据类型是 datetime
曾尝试使用 iloc 但效果不佳...
如果有人对谁来做这件事有任何想法/例子,
请让我知道。

最佳答案

如果 Pandas rolling允许左对齐窗口(默认为右对齐)那么答案将是一个简单的单行:df.set_index('order_date').amount.rolling('7d',min_periods=1,align='left').sum() ,但是前瞻性尚未实现(即 rolling 不接受 align 参数)。所以,我想出的技巧是暂时“反转”日期。解决方案:

df.index = pd.to_datetime(pd.datetime.now() - df.order_date)
df['sum'] = df.sort_index().amount.rolling('7d',min_periods=1).sum()
df.reset_index(drop=True)

输出:
  order_date  amount   sum
0 2015-10-02 1 1.0
1 2015-12-21 15 27.0
2 2015-12-24 3 22.0
3 2015-12-26 4 19.0
4 2015-12-27 5 15.0
5 2015-12-28 10 10.0

关于python - 如何在特定时间范围内对python pandas数据帧求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44162516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com