gpt4 book ai didi

python - 迭代数据帧时引用上一行

转载 作者:行者123 更新时间:2023-12-01 05:44:09 26 4
gpt4 key购买 nike

在迭代数据帧时是否有一种简单的方法来引用前一行?在下面的数据框中,我希望当 A > 1 时 B 列更改为 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但完全迷失了,我确信我错过了一个非常简单的解决方案!

最佳答案

这就是你想要做的事情?

In [38]: df = DataFrame(randn(10,2),columns=list('AB'))

In [39]: df['B'] = np.nan

In [40]: df.loc[df.A<-1,'B'] = -1

In [41]: df.loc[df.A>1,'B'] = 1

In [42]: df.ffill()
Out[42]:
A B
0 -1.186808 -1
1 -0.095587 -1
2 -1.921372 -1
3 -0.772836 -1
4 0.016883 -1
5 0.350778 -1
6 0.165055 -1
7 1.101561 1
8 -0.346786 1
9 -0.186263 1

关于python - 迭代数据帧时引用上一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16698415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com