如何在iterrows内部执行累积求和



我有一个熊猫数据帧,如下所示:

df2 = pd.DataFrame({ 'b' : [1, 1, 1]})
df2
b
0   1
1   1
2   1

我想创建一个列"cumsum",其中b列的累积和从第2行开始。此外,我还想使用iterrows来执行此操作。我尝试了下面的代码,但似乎不起作用。

for row_index, row in df2.iloc[1:].iterrows():
df2.loc[row_index, 'cumsum'] = df2.loc[row_index, 'b'].cumsum()

我的预期输出:

b   cum_sum
0   1   NaN
1   1   2
2   1   3

根据您的要求,您可以尝试此

for row_index, row in df2.iloc[1:].iterrows():
df2.loc[row_index, 'cumsum'] = df2.loc[:row_index, 'b'].sum()
Out[10]:
b  cumsum
0  1     NaN
1  1     2.0
2  1     3.0

坚持iterrows():

i=0
df2['cumsum']=0
col=list(df2.columns).index('cumsum')
for row_index, row in df2.iloc[1:].iterrows():
df2.loc[row_index, 'cumsum'] = df2.loc[row_index, 'b']+df2.iloc[i, col]
i+=1

输出:

b  cumsum
0  1       0
1  1       1
2  1       2

最新更新