我有一个熊猫数据框,其中一个小时的数据框包含河流水位和降雨量。我希望能够遍历每个降雨值并收集其河流水位值,以及下一个河流水位读数。例如:
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
当前,我有一个循环,遍历并找到给定降雨值的所有行,但无法弄清楚如何获得值后的一行。
非常感谢任何帮助。
尝试一下
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
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