首页 > 解决方案 > Pandas/Python 检查介于两者之间的值和输出值形成另一列

问题描述

我有以下数据框和一个等于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)

在此处输入图像描述

标签: pythonpandasdataframebetween

解决方案


使用boolean indexingwithDataFrame.loc然后通过 获取列col1的最后一个值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

推荐阅读