Python:如何计算数据框列的累加和?

时间:2020-08-24 10:01:04

标签: python pandas dataframe

我的数据框当前如下所示:

     ts1   ts2
0     0     NaN
1     3     NaN
2     2     NaN
3     5     NaN

....依此类推,直到第1000行

我需要使用x = 1到x = 1000的以下代码填充ts2列。有人可以告诉我如何通过使用for循环来简化此操作吗?

df.at[0,'ts2']=0 #start ts2 row 0 at 0
x = 1
df.at[x,'ts2']=df.at[x,'ts1'] + df.at[x-1,'ts2']
x = 2
df.at[x,'ts2']=df.at[x,'ts1'] + df.at[x-1,'ts2']
x = 3
df.at[x,'ts2']=df.at[x,'ts1'] + df.at[x-1,'ts2']
x = 4
df.at[x,'ts2']=df.at[x,'ts1'] + df.at[x-1,'ts2']
#.....
#x = 1000
#df.at[x,'ts2']=df.at[x,'ts1'] + df.at[x-1,'ts2']
df

我尝试将所有NaN替换为0,并且还使用以下代码,但没有运气:

for x in range(1,1000):
    df.at[x,'ts2']=df.at[x,'ts1'] + df.at[x-1,'ts2']

我希望最终结果看起来像这样:

     ts1   ts2
0     0     0
1     3     3  #3+0
2     2     5  #2+3
3     5     10 #5+5

1 个答案:

答案 0 :(得分:1)

df = pd.DataFrame({"ts1":[0, 3, 2, 5]})
df['ts2'] = df.ts1.cumsum()