gpt4 book ai didi

python - 尝试用 Pandas 生成 rolling_sum

转载 作者:太空宇宙 更新时间:2023-11-04 03:25:50 24 4
gpt4 key购买 nike

我有一个带有常规样本的简单 dataFrame:

dates = pd.date_range('20150101', periods=6)
df = pd.DataFrame([1,2,3,4,5,6], index=dates, columns=list('A'))
df.loc[:,'B'] = 0
df.iloc[0,1] =10
df


Out[119]:
A B
2015-01-01 1 10
2015-01-02 2 0
2015-01-03 3 0
2015-01-04 4 0
2015-01-05 5 0
2015-01-06 6 0

我想做的是使用 Pandas 中的 rolling_sum 函数在 B 列中创建值,这样我就可以得到下表:

            A   B
2015-01-01 1 11
2015-01-02 2 13
2015-01-03 3 16
2015-01-04 4 20
2015-01-05 5 25
2015-01-06 6 31

也就是说,B(i+1) = A(i+1) + B(i) - 注意 B(0) 处有一个特殊情况,因为初始值为10. 我试过使用以下方法,但给出了错误的答案:

df.B = pd.rolling_sum(df.A + df.B, 1)

最佳答案

尝试 expanding_sum :

In [15]: df
Out[15]:
A B
2015-01-01 1 10
2015-01-02 2 0
2015-01-03 3 0
2015-01-04 4 0
2015-01-05 5 0
2015-01-06 6 0

In [16]: df.B = pd.expanding_sum(df.A) + df.B[0]

In [17]: df
Out[17]:
A B
2015-01-01 1 11
2015-01-02 2 13
2015-01-03 3 16
2015-01-04 4 20
2015-01-05 5 25
2015-01-06 6 31

关于python - 尝试用 Pandas 生成 rolling_sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33053269/

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