Python 尝试与熊猫产生滚动总和
我有一个简单的Python 尝试与熊猫产生滚动总和,python,pandas,Python,Pandas,我有一个简单的数据帧,带有常规样本: 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
数据帧
,带有常规样本:
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\u 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)
尝试:
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