gpt4 book ai didi

python - 如果我有每日值,如何使用 Pandas 计算累计的每周值总和?

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:56 26 4
gpt4 key购买 nike

我是 Pandas 的新手。我有一个看起来像这样的数据框:

days rainfall
1 3.51
2 1.32
3 0
4 0
5 0
6 0
7 0
8 0
9 0.03
10 0
11 0
12 0.17
13 0.23
14 0.02
15 0
16 0
17 0
18 0.03
19 0.02
20 0
21 0

我想添加一个列(我们称它为“累积”)来显示每周的累积降雨量值。换句话说,我想计算前七天 (1-7) 的累计值,然后是第二组七天 (8-14),依此类推。

最终产品看起来像这样:

days rainfall cumulative
1 3.51 4.83
2 1.32 0.45
3 0 0.05
4 0
5 0
6 0
7 0
8 0
9 0.03
10 0
11 0
12 0.17
13 0.23
14 0.02
15 0
16 0
17 0
18 0.03
19 0.02
20 0
21 0

到目前为止,我已经尝试使用 sum 调用 rolling,但我没有得到我想要的结果。

df['cumulative']=df['rainfall'].rolling(min_periods=7, window=7).sum()

感谢任何提示或建议!

最佳答案

你可以这样做:

import pandas as pd

df = pd.DataFrame([
[ 1, 3.51],
[ 2, 1.32],
[ 3, 0],
[ 4, 0],
[ 5, 0],
[ 6, 0],
[ 7, 0],
[ 8, 0],
[9, 0.03],
[10, 0],
[11, 0],
[12, 0.17],
[13, 0.23],
[14, 0.02],
[15, 0],
[16, 0],
[17, 0],
[18, 0.03],
[19, 0.02],
[20, 0],
[21, 0]], columns=['days', 'rainfall'])
result = df['rainfall'].groupby((df['days'] - 1) // 7).sum().reset_index(drop=True)
print(result)
# In [418]: %paste -q
# 0 4.83
# 1 0.45
# 2 0.05
# Name: rainfall, dtype: float64

关于python - 如果我有每日值,如何使用 Pandas 计算累计的每周值总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58663987/

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