如何找到一个数据框及其后的值?

问题描述 投票:0回答:2

我有一个熊猫数据框,其中一个小时的数据框包含河流水位和降雨量。我希望能够遍历每个降雨值并收集其河流水位值,以及下一个河流水位读数。例如:

River Level Rainfall
0.876       0.0
0.877       0.8
0.882       0.0

在这种情况下,如果我正在寻找0.8mm的降雨值,我希望它返回与0.8相同的行中的0.877,以及紧随其后的0.882。我希望它输出:

0.877
0.882

当前,我有一个循环,遍历并找到给定降雨值的所有行,但无法弄清楚如何获得值后的一行。

非常感谢任何帮助。

python pandas
2个回答
2
投票

尝试一下

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

1
投票

shift是@Andy L建议的方法。如果您正在寻找替代方法,这是另一种方法(在Wayne建议之后:]]

rainfall_value = 0.8
index = data[data.Rainfall == rainfall_value].index.tolist()
index = [item for x in index for item in [x, x+1]]
result = data.iloc[index]
print(result['River Level']) 
# 1  0.877
# 2  0.882
© www.soinside.com 2019 - 2024. All rights reserved.