首页 > 解决方案 > 在相同形状的两个数据框之间查找更大的行

问题描述

我有两个相同形状的数据框,我试图找到 df A 中的所有行,其中每个值都大于 df B 中的相应行。

小例子:

df_A = pd.DataFrame({'one':[20,7,2],'two':[11,9,1]})
df_B = pd.DataFrame({'one':[1,8,12],'two':[10,5,3]})

我只想返回第 0 行。

    one     two
0   20      11

我意识到这df_A > df_B让我大部分时间都受益,但我只是不知道如何只返回所有内容所在的那些行True

(我尝试将两者合并,但这似乎并没有让它变得更简单。)

标签: pythonpandas

解决方案


IUIC,你可以使用all

In [633]: m = (df_A > df_B).all(1)

In [634]: m
Out[634]:
0     True
1    False
2    False
dtype: bool

In [635]: df_A[m]
Out[635]:
   one  two
0   20   11

In [636]: df_B[m]
Out[636]:
   one  two
0    1   10

In [637]: pd.concat([df_A[m], df_B[m]])
Out[637]:
   one  two
0   20   11
0    1   10

或者,如果您只需要行索引。

In [642]: m.index[m]
Out[642]: Int64Index([0], dtype='int64')

推荐阅读