Короткий ответ
dropna() уместен, когда пропусков мало и они распределены случайно относительно анализа; если пропусков много или они связаны с конкретным сегментом, удаление строк может сильно искажать выборку.
Как это работает подробнее
dropna() по умолчанию удаляет строку, если хотя бы в одном столбце есть NaN (how='any'); параметр subset ограничивает проверку конкретными столбцами, а how='all' удаляет строку только если все значения пропущены.
Пример кода
Пример Python
import pandas as pd
df = pd.DataFrame({'user_id': [1, 2, 3, 4], 'country': ['RU', None, 'RU', None], 'revenue': [10, 20, 30, 40]})
clean = df.dropna(subset=['country'])
print(clean)Что использовать на практике
- На практике: перед удалением стоит посчитать, какую долю строк это затронет, и проверить, не концентрируются ли пропуски в конкретном сегменте (например, в одной стране или у новых пользователей) — тогда удаление введёт систематическое смещение, а не просто уменьшит шум.
- Проверка: до удаления 4 строки, после — 2; если удалённые строки относятся к конкретному сегменту (например, все без страны оказались новыми пользователями), стоит явно отметить это ограничение в выводах.
Подводные камни
- Частые ошибки: удаляют все строки с пропуском хотя бы в одном из многих столбцов, хотя для текущего анализа важен только один конкретный столбец, в результате теряется гораздо больше данных, чем необходимо; не документируют, сколько строк и почему были удалены, что затрудняет воспроизведение и объяснение итоговых чисел.