Pandas/Python 检查中间的值并从另一列输出值

Pandas/Python check value in between and output value form another column

我有以下数据框和一个等于 20 的变量。我需要找到这个变量在 col2 中的位置(这里在 10 和 50 之间)并输出 col1 中的最低值,这里是 2。另一个例子是有一个等于 51 的变量和正确的输出col1 将是 3.

我可以使用 if 公式来完成,但我希望为更大的数据集找到更好的解决方案。

d = {'col1': [1, 2, 3, 4, 5], 'col2': [0, 10, 50, 60, 70]}
df = pd.DataFrame(data=d)

使用boolean indexing with DataFrame.loc and then get last value of column col1 by Series.iat:

a = df.loc[df['col2'] <= 20, 'col1'].iat[-1]
print (a)
2
a = df.loc[df['col2'] <= 51, 'col1'].iat[-1]
print (a)
3
a = df.loc[df['col2'] <= 10, 'col1'].iat[-1]
print (a)
2