Как удалить строки по условию с помощью метода drop?
Не получается удалить строки по условию. Где ошибка?
data = data.drop(data[data['Комнат'] == 'Для заметок:'], axis=0, inplace=True)
data.head()
data = data.drop(data[data.columns[0] == 'Для заметок:'], axis=0, inplace=True)
data.head()
data = data(data[data.index['Для заметок:']], axis= 0)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Общее замечание: если вы используете параметр inplace=True, то DataFrame.drop(...) изменит фрейм на месте и ничего не вернет, что эквивалентно возвращению None в Python. Поэтому конструкция:
df = df.drop(..., inplace=True)
вернет None в df.
Советую вам не использовать параметр inplace=True вообще, т.к. разработчики Pandas планируют от него отказаться в будущих версиях.
Лучше делать так:
df = df.method_name(...)
Альтернативные варианты решения вашей задачи (в порядке лучшей читабельности/производительности):
Вариант 1:
data = data.query("Комнат != 'Для заметок:'")
Вариант 2:
data = data.loc[data['Комнат'] != 'Для заметок:']
Вариант 3:
data = data.drop(data[data['Комнат'] == 'Для заметок:'].index)
