gpt4 book ai didi

python - 基于日期时间值(缺少日期)在数据框中进行计算,而不用空日期填充数据框

转载 作者:行者123 更新时间:2023-12-03 19:02:33 27 4
gpt4 key购买 nike

我有一个类似于下面的数据框,我想计算 value 的总和过去 7 天的列。问题是不一定每天都有一行。

df = pd.DataFrame({
'value': [2,3,7,14],
'date': ['10/20/2005','10/22/2005','10/25/2005','10/27/2005']
})

df['date'] = pd.to_datetime(df['date'])
df
value date
2 2005-10-20
3 2005-10-22
7 2005-10-25
14 2005-10-27
我想要的是类似的东西
 df['value'].sum('Last 7 days')
26
我发现的问题的解决方案总是使用缺少的日期填充 df,使用 .asfreq().reindex() .不幸的是,这对我来说不是一个选择,因为我有太多的类,每个类都用 df 表示,就像上面的那样。因此,用缺失的日期填充 df 会创建成千上万的额外行。
有没有办法使用 pd.Timedelta() (或类似),我可以在哪里将丢失的天数视为零?

最佳答案

滚动将此智能内置到基于日期时间的列的函数中:

df.rolling('7d', on='date').sum()
请注意,10/27 和 10/20 相隔 8 天而不是 7 天 :)
如果你想把它放到另一列:
df['sum'] = df.rolling('7d', on='date').sum()['value']
如果您只想要最终值:
df.rolling('7d', on='date').sum()['value'].iloc[-1]

关于python - 基于日期时间值(缺少日期)在数据框中进行计算,而不用空日期填充数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64392107/

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