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']
。为什么要用它?为什么你需要它?