我有一个熊猫数据帧,如下所示:
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