2016-11-03 5 views
2

Извините, если это дубликат, но я не могу найти рабочий пример в документах pandas, SO или google.Pandas: return dataframe, где значения одного столбца больше другого

Как вы возвращаете данные, где значения одного столбца больше значений другого?

Должно быть что-то вроде этого: df['A'].where(df['A']>df['B'])

Но это возвращает только вектор. Мне нужен полный фильтрованный фрейм.

ответ

3

Попробуйте использовать 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

Для df['A'].where(df['A']>df['B']) в синтаксисе панд существу маска. Вместо where вы принимаете подмножество dataframe:

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

example

Смежные вопросы