迭代数据框时是否有一种简单的方法来引用前一行?在以下数据框中,我希望 B 列何时更改为 1,A > 1
并保持为 1 A < -1
,直到它更改为 -1。
In [11]: df
Out[11]:
A B
2000-01-01 -0.182994 0
2000-01-02 1.290203 0
2000-01-03 0.245229 0
2000-01-08 -1.230742 0
2000-01-09 0.534939 0
2000-01-10 1.324027 0
这是我试图做的,但显然你不能只从索引中减去 1:
for idx,row in df.iterrows():
if df["A"][idx]<-1:
df["B"][idx] = -1
elif df["A"][idx]>1:
df["B"][idx] = 1
else:
df["B"][idx] = df["B"][idx-1]
我也尝试过使用get_loc
但完全迷路了,我确定我错过了一个非常简单的解决方案!