使用reduce将不同数据帧中多个列上的布尔运算进行组合

时间:2019-12-20 21:51:28

标签: python pandas

我有以下两个数据框

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的列上进行迭代并将单个结果折叠到单个列中,将是一种更简单的方法,但是我不确定如何进行操作< / p>

感谢帮助

1 个答案:

答案 0 :(得分:2)

您可以首先计算bfBC列中D的最小值:

af['A'] > bf[['B', 'C', 'D']].min(axis=1)

实际上,假设af['A']大于该行其他列的最小值,我们知道这些列中至少有一个元素小于af['A']的值。