过滤后在熊猫中选择上一行的语法

Adr*_*n Y 4 python conditional dataframe pandas

我有5行的pd.DataFrame,说:

Row    Value
 1      32
 2      25
 3      10
 4      18
 5      21
Run Code Online (Sandbox Code Playgroud)

可以说我使用了过滤器pd [pd ​​['Value'] <15],它应该返回

Row    Value
 3      10
Run Code Online (Sandbox Code Playgroud)

我的问题是,在此过滤器返回True之前,我想访问该行的值,在此示例中,我想函数返回值25(来自第2行)。

我的最终目标是应用条件,获取上面的行,并测试该行的其他条件。

我可以使用哪些熊猫功能?

谢谢!

cs9*_*s95 6

将遮罩上移1。

df[(df['Value'] < 15).shift(-1).fillna(False)]

   Row  Value
1    2     25
Run Code Online (Sandbox Code Playgroud)

更一般而言,如果您要查找所有大于15的行,而其下一行小于15,则可以计算两个单独的掩码并将它们与:

df[(df['Value'].shift(-1) < 15) & (df['Value'] > 15)]

   Row  Value
1    2     25
Run Code Online (Sandbox Code Playgroud)