Короткий ответ
.describe() (pandas, актуально для версий 1.x и 2.x) выводит count, mean, std, min, 25%/50%/75% перцентили и max для числовых колонок — это быстрый способ оценить масштаб, центр и разброс данных.
Как это работает подробнее
метод агрегирует каждую числовую колонку независимо; count показывает число непустых значений (не общее число строк), что уже само по себе диагностика пропусков. Метод особенно полезен на этапе первичного знакомства с новым набором данных перед более глубоким анализом.
Пример кода
Пример на Python
import pandas as pd
df = pd.DataFrame({'age': [25, 30, None, 40, 150, 28]})
print(df.describe())Что использовать на практике
- На практике: сравнение mean и 50% (медианы) сразу подсказывает наличие скоса; большая разница между 75% и max часто указывает на выбросы. Для категориальных колонок нужно явно передать
include='object'илиinclude='all', иначе они не попадут в вывод. Полезно сразу смотреть count по всем колонкам, чтобы заметить колонки с пропусками. Дополнительно полезно смотреть на.describe()в разрезе сегментов (df.groupby('segment').describe()), чтобы сразу увидеть различия в масштабе и разбросе между группами. - Пример: Результат покажет count=5 (пропуск не учтён), max=150 — подозрительное значение для возраста, которое стоит проверить отдельно, прежде чем использовать колонку в расчётах.
Подводные камни
- Частые ошибки: воспринимать
.describe()как полную диагностику данных без визуализации распределения; не замечать, что count меньше числа строк в датафрейме (значит, есть NaN); использовать результат для колонок с смешанными типами без явного приведения типов; игнорировать, что min/max могут быть явными ошибками данных (например, отрицательный возраст). Также распространена ошибка — не обращать внимание на единицы измерения колонки, интерпретируя числа без контекста (например, секунды vs миллисекунды).