August 12, 2022

МРТ датафрейма с 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 и настройкой файла конфигурации.

Не пропустите ничего интересного и подписывайтесь на страницы канала в других социальных сетях:

Яндекс Дзен

Telegram