dropna() в pandas — удаление строк и колонок с пропусками

dropna() убирает строки (или колонки) с пропущенными значениями. Гибкость дают параметры: how решает, удалять при любом NaN или только когда пусто всё, thresh задаёт минимум непустых значений, а subset ограничивает проверку нужными колонками. Это стандартный первый шаг очистки данных.

Синтаксис

DataFrame.dropna(*, axis=0, how='any', thresh=None, subset=None, inplace=False)

Примеры использования

Пример 1: Удалить строки без amount

df.shape
df.dropna(subset=['amount']).shape

Результат:

(5000, 6)
(4850, 6)

Пример 2: Строки, где есть хотя бы 4 непустых значения

clean = df.dropna(thresh=4)
clean.shape

Результат:

(4980, 6)

Пример 3: Удалить полностью пустые строки

df.dropna(how='all').shape

Результат:

(4998, 6)
Порешать Python-задачи в тренажёре →

Типичная ошибка

По умолчанию axis=0 и how='any' — удаляется строка, где пропущено хотя бы одно значение, что легко выкосить половину данных; ограничьте проверку через subset. thresh задаёт минимум непустых значений и несовместим с how. Метод возвращает копию, если не указан inplace=True, а axis=1 удаляет колонки, а не строки.

Где спрашивают на собеседовании

Применяют перед агрегатами и обучением моделей, чтобы убрать битые записи, но обычно с subset — чтобы не удалять строку из-за пропуска в неважной колонке. На собеседовании уточняют разницу how='any' и how='all'.

FAQ: частые вопросы про dropna

Чем отличаются how='any' и how='all'?

how='any' удаляет строку при любом пропуске, а how='all' — только если пропущены все значения в строке. По умолчанию стоит 'any', что агрессивнее. how='all' удобен, когда надо убрать лишь целиком пустые строки.

Как удалять строки только по пропускам в конкретной колонке?

Передайте subset со списком колонок, например subset=['amount']. Тогда строка удаляется, только если пропуск именно там, а пропуски в других колонках игнорируются. Это самый частый и безопасный сценарий.

Что делает параметр thresh?

thresh задаёт минимальное число непустых значений, которое строка должна иметь, чтобы остаться. Например, thresh=4 сохранит строки, где заполнено хотя бы 4 колонки. thresh нельзя комбинировать с how — работает что-то одно.

Задачи в тренажёре по теме

Вопросы с собеседований по теме

Смежные темы Python

Pandas: основы · NumPy векторизация

Другие функции pandas

groupby · merge · pivot_table · apply · value_counts · drop_duplicates

Открыть Python-тренажёр (556 задач) →