Как удалить строки по разным условиям?
📁 python, numpy, pandas
Есть фрейм данных и мне нужно удалить из него строки, в которых значение столбца А более 50. Эта операция успешно выполняется кодом:
import pandas as pdimport numpy as npdf = pd.DataFrame([[256, 4, 24, 51], [24, 25, 34, 200], [300, 12, 45, 11], [34, 19, 2, 34], [75, 76, 19, 11], [42, 89, 29, 101], [54, 104, 11, 12]])df.rename({0: 'A', 1: 'B', 2: 'C', 3: 'D'}, axis=1, inplace=True)df_without_noise = df.drop(np.where(df['A'] > 250)[0])и получается
A B C D1 24 25 34 2003 34 19 2 344 75 76 19 115 42 89 29 1016 54 104 11 12Потом нужно удалить строки, в которых значения столбца В более 50. Я повторяю операцию, аналогичную первому удалению строк:
df_without_noise = df_without_noise.drop(np.where(df_without_noise['В'] > 50)[0])но выводит ошибку:
KeyError: '[2] not found in axis'
При этом, в столбце В присутствуют значения более 50.
Как удалить строки с ними?
Должно получиться:
A B C D1 24 25 34 2003 34 19 2 34 Также можно воспользоваться методом :
df_without_noise = df.query(""A <= 250 and B <= 50"")результат:
In [28]: df_without_noiseOut[28]: A B C D1 24 25 34 2003 34 19 2 34 Войдите чтобы оставить ответ