Pandas:返回数据框,其中一列的值大于另一列

RDJ*_*RDJ 4 python dataframe pandas

如果这是重复的道歉,但我似乎无法在pandas docs,SO或google中找到一个有效的例子.

如何返回一列的值大于另一列的值的数据帧?

应该是这样的: df['A'].where(df['A']>df['B'])

但这只返回一个向量.我需要完整的过滤数据帧.

piR*_*red 7

尝试使用 query

df.query('A > B')
Run Code Online (Sandbox Code Playgroud)

考虑 df

np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(10, 2), columns=list('AB'))
df
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

选项1

df.query('A > B')
Run Code Online (Sandbox Code Playgroud)

选项2

df[df.A.gt(df.B)]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


sze*_*lin 5

df['A'].where(df['A']>df['B'])在 pandas 语法中do本质上是一个掩码。而不是where您获取数据帧的子集:

df[df['A'] > df['B']]

例子