如何解决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)
解决方法
将 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。