标签: python pandas dataframe
如果这是重复的道歉,但我似乎无法在pandas docs,SO或google中找到一个有效的例子。
如何返回数据框,其中一列的值大于另一列的值?
应该是这样的:df['A'].where(df['A']>df['B'])
df['A'].where(df['A']>df['B'])
但这只返回一个向量。我需要完整的过滤数据帧。
答案 0 :(得分:6)
尝试使用query
query
df.query('A > B')
考虑df
df
np.random.seed([3,1415]) df = pd.DataFrame(np.random.rand(10, 2), columns=list('AB')) df
选项1
选项2
df[df.A.gt(df.B)]
答案 1 :(得分:2)
在pandas中执行df['A'].where(df['A']>df['B'])语法本质上是一个掩码。而不是where您正在获取数据帧的子集:
where
df[df['A'] > df['B']]