我有一個看起來像這樣的資料框
df=
Time x y
0 2018-09-13 01:17:00 5.0 0.0
1 2018-09-13 02:17:00 9.0 0.0
2 2018-09-13 03:17:00 2.0 1.0
3 2018-09-13 04:17:00 1.0 0.0
.......我想遍歷整個資料框并計算一個新變數z。z 的值是z= z[prev] x-y
例如,最終輸出將是
Time z
0 2018-09-13 01:17:00 5 #[0 5-0]
1 2018-09-13 02:17:00 14 #[5 9-0]
2 2018-09-13 03:17:00 15 #[14 2-1]
3 2018-09-13 04:17:00 16 #[15 1-0]
......
我發現很難迭代時間序列資料。
我嘗試了以下方法,但它不起作用。
for i,row in df.iterrows():
z=0
row['z']=row['z'] row['x']-row['y']
print[z]
uj5u.com熱心網友回復:
在你的情況下cumsum
df['new'] = df.x.sub(df.y).cumsum()
Out[410]:
0 2018-09-13 5.0
1 2018-09-13 14.0
2 2018-09-13 15.0
3 2018-09-13 16.0
dtype: float64
uj5u.com熱心網友回復:
您可以使用索引
z = []
for i in range(len(df)):
if i == 0:
z.append(df.loc[i]['x'] - df.loc[i]['y'])
else:
z.append(z[i-1] df.loc[i]['x'] - df.loc[i]['y'])
df['z'] = z
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433531.html
