Python 3.x 如何在iterrows中执行累积和

Python 3.x 如何在iterrows中执行累积和,python-3.x,pandas,Python 3.x,Pandas,我有一个熊猫数据框,如下所示: df2 = pd.DataFrame({ 'b' : [1, 1, 1]}) df2 b 0 1 1 1 2 1 我想创建一个列'cumsum',从第2行开始,列b的累计和。我还想使用iterrows来执行此操作。我尝试了下面的代码,但似乎不起作用 for row_index, row in df2.iloc[1:].iterrows(): df2.loc[row_index, 'cumsum'] = df2.loc[row_ind

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

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

    b
0   1
1   1
2   1

我想创建一个列'cumsum',从第2行开始,列b的累计和。我还想使用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
要坚持使用
iterrows()

i=0
df2['cumsum']=0
col=list(df2.columns).index('cumsum')
对于行索引,df2.iloc[1:][.ItErrors()中的行:
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

根据您的要求,您可以尝试以下方法

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

为什么不使用
df['b'].cumsum()
?我想使用ItError您可以添加枚举并执行类似操作:
df.iloc[I-1,“cumsum”]+df2.loc[row_index,'b']
。为什么要用它?为什么你需要它?