最近,我试图找到一种有效的方法来对系列进行累计求和。
>>> df=pd.DataFrame()
>>> df['a']=[1,3,1,4,2,5,3,8]
>>> df
a
0 1
1 3
2 1
3 4
4 2
5 5
6 3
7 8
预期产出:
df
a b
0 1 1
1 3 4
2 1 5
3 4 9
4 2 11
5 5 16
6 3 19
7 8 27
每个b[i]
等于sum(a[j] for j<=i)
我通过
解决问题df['b']=df.a
for i in range(df.shape[0]-1):
df.b.ix[i+1]+=df.b.ix[i] if df.b.ix[i+1] else df.b.ix[i]
它不够简洁,我想取消循环。 我来这里寻求建议。
答案 0 :(得分:1)
df['b'] = df.a.cumsum()
参考:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.cumsum.html