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

时间:2016-11-03 20:49:47

标签: python pandas dataframe

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

如何返回数据框,其中一列的值大于另一列的值?

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

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

2 个答案:

答案 0 :(得分:6)

尝试使用query

df.query('A > B')

考虑df

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

enter image description here

选项1

df.query('A > B')

选项2

df[df.A.gt(df.B)]

enter image description here

答案 1 :(得分:2)

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

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

example