gpt4 book ai didi

python - 接下来 n 行的更复杂的滚动总和

转载 作者:行者123 更新时间:2023-12-01 01:59:11 25 4
gpt4 key购买 nike

我有以下数据框:

print(df)
day month year quantity
6 04 2018 10
8 04 2018 8
12 04 2018 8

我想创建一个列,即接下来的“n”天的“数量”的总和,如下所示:

n = 2

print(df1)
day month year quantity final_quantity
6 04 2018 10 10 + 0 + 8 = 18
8 04 2018 8 8 + 0 + 0 = 8
12 04 2018 8 8 + 0 + 0 = 8

具体来说,如果产品在接下来的“n”天内售出,则求和0。我尝试从 Pandas 中滚动求和,但似乎不适用于不同的列:

n = 2
df.quantity[::-1].rolling(n + 1, min_periods=1).sum()[::-1]

最佳答案

您可以使用列表理解:

import pandas as pd

df['DateTime'] = pd.to_datetime(df[['year', 'month', 'day']])

df['final_quantity'] = [df.loc[df['DateTime'].between(d, d+pd.Timedelta(days=2)), 'quantity'].sum() \
for d in df['DateTime']]

print(df)

# day month year quantity DateTime final_quantity
# 0 6 4 2018 10 2018-04-06 18
# 1 8 4 2018 8 2018-04-08 8
# 2 12 4 2018 8 2018-04-12 8

关于python - 接下来 n 行的更复杂的滚动总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49856785/

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