Python 如何查找数据帧中的值及其后的值?

Python 如何查找数据帧中的值及其后的值?,python,pandas,Python,Pandas,我有一个pandas数据框,它将河流水位和降雨量放在一个称为Hourly的数据框中。我希望能够循环通过每个降雨值,收集其河流水位值,加上下一个河流水位读数。 例如: River Level Rainfall 0.876 0.0 0.877 0.8 0.882 0.0 在本例中,如果我要查找0.8mm降雨量的值,我希望它返回0.877,该值与0.8位于同一行,并且在紧接着的第二行返回0.882。 我希望它能够输出: 0.877 0.882 目前,我有一个循环

我有一个pandas数据框,它将河流水位和降雨量放在一个称为Hourly的数据框中。我希望能够循环通过每个降雨值,收集其河流水位值,加上下一个河流水位读数。 例如:

River Level Rainfall
0.876       0.0
0.877       0.8
0.882       0.0
在本例中,如果我要查找0.8mm降雨量的值,我希望它返回0.877,该值与0.8位于同一行,并且在紧接着的第二行返回0.882。 我希望它能够输出:

0.877
0.882
目前,我有一个循环,它遍历并定位给定降雨值的所有行,但不知道如何获得一行后的值

非常感谢您的帮助。

试试这个

s = df.Rainfall.eq(0.8)
out = df.loc[s | s.shift(), 'River Level']

Out[364]:
1    0.877
2    0.882
Name: River Level, dtype: float64
试试这个

s = df.Rainfall.eq(0.8)
out = df.loc[s | s.shift(), 'River Level']

Out[364]:
1    0.877
2    0.882
Name: River Level, dtype: float64

按照@Andy L的建议,轮班是一条路。如果你正在寻找替代方案,这里有另一条路(根据Wayne的建议):


按照@Andy L的建议,轮班是一条路。如果你正在寻找替代方案,这里有另一条路(根据Wayne的建议):


样本数据的
rainment
列中没有
0.2
,您能否分享预期产出?@AndyL。您好,谢谢,我现在已经更新了。@E.Zeytinci我已经更新了问题,以包括所需的输出。您的样本数据的
列中没有
0.2
,您可以分享预期的输出吗?@AndyL。您好,谢谢,我现在已经更新了。@E.Zeytinci我已经更新了问题,以包括所需的输出。我也在沿着这些思路进行研究,但OP说代码“定位给定降雨值的所有行”。如前所述,您的解决方案只处理第一个实例。在结果行上方,我建议您插入
index=[x中的x项在[x,x+1]中的项的索引中]
。然后用
result=data.iloc[index]
@Wayne替换
result
行。你完全正确,列表理解应该可以解决它!我相应地更新了答案!谢谢你的回复,这个方法对我也有效,但是我已经为它的简单性将另一个标记为正确的。我也在沿着这些思路进行研究,但是OP说代码“定位给定降雨值的所有行”。如前所述,您的解决方案只处理第一个实例。在结果行上方,我建议您插入
index=[x中的x项在[x,x+1]中的项的索引中]
。然后用
result=data.iloc[index]
@Wayne替换
result
行。你完全正确,列表理解应该可以解决它!我相应地更新了答案!谢谢你的回复,这个方法对我也很有效,但是我已经将另一个方法标记为正确的,因为它简单。