МРТ датафрейма с pandas_profiling
Рассмотрим удобный инструмент первичного, но детального изучения датафрейма pandas_profiling (для установки достаточно набрать pip install pandas_profiling). Для наглядности проанализируем с его помощью датасет о пассажирах Титаника:
import pandas as pd df = pd.read_csv("https://s3.amazonaws.com/h2o-public-test-data/smalldata/gbm_test/titanic.csv")
Для вывода отчета в ноутбук можно воспользоваться одним из двух способов.
Например, вызовом функции ProfileReport:
from pandas_profiling import ProfileReport profile = ProfileReport(df, title="Pandas Profiling Report") profile
Сводная информация состоит из вкладок:
- с общей информацией/Overview (размерность датасета, пропуски, дубликаты, место в памяти);
- с особенностями, требующими внимания/Alerts;
- со служебной информацией/Reproduction (затраченное время на анализ, версия библиотеки)
Пример вывода информации во вкладке Overview :
Alerts включает такие типы событий, как наличие константной колонки, нулей или пропусков в признаке, большого числа уникальных значений, корреляции (здесь полный перечень):
На первой картинке отчета, выше перечисленных трех вкладок, справа от названия есть еще ряд вкладок, включающих характеристики колонок, графики попарных распределений и корреляций между признаками. Ниже пример колонки с информацией о классе пассажиров (выведена статистика уникальных значений, пропусков, гистограмма):
Вторым способом поместить сводную информацию о датафрейме в ноутбук является использование виджетов. Сначала включаем расширение:
!jupyter nbextension enable --py widgetsnbextension
а затем вызываем метод to_widgets объекта ProfileReport:
profile.to_widgets()
Кроме того, отчет можно сохранить в отдельный файл:
profile.to_file("report.html")
Существует еще два дополнительных режима вывода - минимальный
предназначен для больших датасетов (задается параметром minimal=True в ProfileReport). Он исключает такие затратные вычисления, как построение графиков попарных распределений и корреляций:
ProfileReport(df, minimal=True)
В качестве альтернативы, для исследования больших датасетов можно ограничиться изучением его sample-а.
Также в pandas_profiling имеется более детальный режим анализа с выводом характеристик файлов, текста, изображений, который задается флагом explorative=True в ProfileReport и настройкой файла конфигурации.
Не пропустите ничего интересного и подписывайтесь на страницы канала в других социальных сетях: