python - 使用reduce组合不同数据帧之间多列的布尔运算
问题描述
我有两个数据框如下
af=pd.DataFrame({'A':[3,7]})
bf=pd.DataFrame({'B': [5, 2], 'C': [1, 4],'D':[6,8]})
我想执行这个操作
(af['A']>bf['B'])|(af['A']>bf['C'])|(af['A']>bf['D'])
我相信使用reduce高阶函数会更简单的方法,迭代 bf 的列并将单个结果折叠到单个列中,但我不知道如何继续
谢谢您的帮助
解决方案
您可以首先计算,和列bf
的最小值:B
C
D
af['A'] > bf[['B', 'C', 'D']].min(axis=1)
实际上,鉴于af['A']
大于该行其他列的最小值,我们知道这些列中至少有一个元素小于 的值af['A']
。
推荐阅读
- ios - Are there recommended ways for drawing 2d array in fast time?
- node.js - 在heroku中创建(克隆)相同的应用程序进行开发
- python - 无论 django 中的用户如何,都从数据库中获取最新对象
- php - PHP 中的空格错误,需要标识符
- arrays - 通过将它们合并为一个数组在同一页面上显示两个数组 - 反应原生
- arrays - 如何追加到 JSONB 列中的嵌套数组
- sql - SQL 删除给定字符串之前的文本(将 URL 缩短为 URL 路径)
- ios - 成功初始化数据MVVM时应用程序崩溃
- javascript - For Loop 可能不会渲染组件
- android - How to enable viewBinging in android project using Kotlin gradle dsl?