Pandas/Python 检查中间值和另一列的输出值
Posted
技术标签:
【中文标题】Pandas/Python 检查中间值和另一列的输出值【英文标题】:Pandas/Python check value in between and output value form another column 【发布时间】:2021-03-19 09:00:48 【问题描述】:我有以下数据框和一个等于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)
【问题讨论】:
【参考方案1】:将boolean indexing
与DataFrame.loc
一起使用,然后通过Series.iat
获取col1
列的最后一个值:
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
【讨论】:
以上是关于Pandas/Python 检查中间值和另一列的输出值的主要内容,如果未能解决你的问题,请参考以下文章
根据另一列的另一个值和/或另一行中的同一列更新设置值:-ORA 1427