<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Блог об аналитике, визуализации данных, data science и BI, заметки с тегом: pandas-profiling</title>
<link>http://test.leftjoin.ru/tags/pandas-profiling/</link>
<description></description>
<generator>E2 (v3365; Aegea)</generator>

<item>
<title>Обзор библиотеки pandas-profiling на примере датасета Superstore Sales</title>
<guid isPermaLink="false">60</guid>
<link>http://test.leftjoin.ru/all/pandas-profiling-2/</link>
<comments>http://test.leftjoin.ru/all/pandas-profiling-2/</comments>
<description>
&lt;p&gt;Перед тем как работать с данными, необходимо составить представление, с чем мы имеем дело. В материале будем рассматривать датасет SuperStore Sales, а именно его лист &lt;i&gt;Orders&lt;/i&gt;. В нём собраны данные о покупках клиентов канадского интернет-супермаркета: идентификаторы заказа, товаров, клиента, тип доставки, цены, категории и названия продуктов и прочее. Подробнее с датасетом можно ознакомиться на &lt;a href="https://github.com/PacktPublishing/Tableau-10-Best-Practices/blob/master/Chapter%205/Sample%20-%20Superstore%20Sales%20(Excel).xls"&gt;GitHub&lt;/a&gt;. Например, если мы создадим из датасета DataFrame, можем воспользоваться стандартным методом &lt;span class="inline-code"&gt;describe()&lt;/span&gt; библиотеки pandas для описания данных:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code&gt;import pandas as pd

df = pd.read_csv('superstore_sales_orders.csv', decimal=',')
df.describe(include='all')&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И во многих случаях получим такую кашу:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/1-13.png" width="984" height="427" alt="" /&gt;
&lt;/div&gt;
&lt;p class="note"&gt;Код библиотеки доступен на &lt;a href="https://github.com/pandas-profiling/pandas-profiling"&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Если постараться и потратить время, можно извлечь полезную информацию. Например, можем узнать, что люди чаще выбирают «Regular air» в качестве доставки или что большинство заказов поступило из провинции Онтарио. Тем не менее, есть и другое решение, которое подробнее и качественнее описывает датасет — библиотека pandas-profiling. Вы отдаёте ей DataFrame, а она генерирует html-страницу с подробным описанием сета данных:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code&gt;import pandas_profiling
profile = pandas_profiling.ProfileReport(df)
profile.to_file(&amp;quot;output.html&amp;quot;)&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/2-15.png" width="973" height="621" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Всего Pandas Profiling возвращает 6 разделов: обзор датасета, переменные, отношения и корреляцию между ними, количество пропущенных значений и примеры из датасета.&lt;/p&gt;
&lt;p class="note"&gt;Web-версия отчёта доступна &lt;a href="http://test.leftjoin.ru/files/superstore.html"&gt;по ссылке&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Обзор данных&lt;/h2&gt;
&lt;p&gt;Рассмотрим первый подраздел — «Overview». Библиотека собрала следующую статистику: количество переменных, наблюдений, пропущенных ячеек, дубликатов и общий вес файла. В колонке &lt;span class="inline-code"&gt;Variable types&lt;/span&gt; описаны типы переменных: здесь 12 качественных и 9 числовых.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/3-13.png" width="737" height="356" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В подразделе «Reproduction» собрана техническая информация библиотеки: сколько времени занял анализ сета данных, версия библиотеки и прочее.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/4-8.png" width="725" height="293" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;А подраздел «Warnings» сообщает о возможных проблемах в структуре датасета: сейчас он, например, предупреждает, что у поля «Order Date» — слишком большое количество уникальных значений.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/5-9.png" width="712" height="485" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Переменные&lt;/h2&gt;
&lt;p&gt;Двигаемся ниже. В этом разделе содержится подробное описание каждой переменной: сколько возможных уникальных значений она принимает, сколько значений пропущено, сколько памяти занимает поле. Справа от статистики присутствует гистограмма с распределением значений поля.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/6-8.png" width="722" height="282" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;При нажатии на &lt;span class="inline-code"&gt;Toggle details&lt;/span&gt; откроется расширенная информация: квартили, медиана и прочая полезная описательная статистика. В остальных вкладках находятся гистограмма из основного экрана, топ-10 значений по частоте и экстремальные значения.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/7-4.png" width="737" height="404" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Отношения переменных&lt;/h2&gt;
&lt;p&gt;В этом разделе визуализированы отношения переменных при помощи hexbin plot: выглядит это не очень очевидно и понятно. Особенно усугубляет положение отсутствие легенды к графику.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/Screenshot-2020-09-04-at-14.56.01.png" width="716" height="548" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Корреляция переменных&lt;/h2&gt;
&lt;p&gt;В этом разделе представлена по-разному посчитананя корреляция переменных: например, первым указано r-value Пирсона. Заметно, что переменная Profit положительно коррелирует с переменной &lt;span class="inline-code"&gt;Sales&lt;/span&gt;. При нажатии на &lt;span class="inline-code"&gt;Toggle correlation descriptions&lt;/span&gt; открывается подробное пояснение к каждому коэффициенту.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/8-5.png" width="739" height="554" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Пропущенные значения&lt;/h2&gt;
&lt;p&gt;Тут всё просто — bar chart, матрица и дендрограмма с количеством заполненных полей в каждой переменной. Заметно, что в колонке &lt;span class="inline-code"&gt;Product Base Margin&lt;/span&gt; отсутствуют три значения.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/9-5.png" width="739" height="411" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Примеры&lt;/h2&gt;
&lt;p&gt;И, наконец, последний раздел представляет первые и последние 10 значений в качестве примера кусков сета данных — аналог метода &lt;span class="inline-code"&gt;head()&lt;/span&gt; из pandas.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://test.leftjoin.ru/pictures/10-4.png" width="661" height="469" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Что в итоге?&lt;/h2&gt;
&lt;p&gt;Библиотека уделяет больше внимания статистике, чем pandas: можно получить подробную описательную статистику по каждой переменной, посмотреть, как коррелируют между собой столбцы датасета. В совокупности с генерацией простого и удобного интерфейса библиотека строит полноценный отчёт по датасету, уже на основании которого можно делать выводы и сформировать представление о данных.&lt;br /&gt;
И всё же, у библиотеки есть и минусы. На генерацию отчётов к громадным датасетам может уйти много времени вплоть до нескольких часов. Это безусловно хороший инструмент для автоматического проектирования, но он не может сделать полноценный анализ за вас и добавить больше деталей в графики. Кроме того, если вы только начали практиковаться с анализом данных лучше будет начать с pandas — это закрепит ваши навыки и придаст уверенности при работе с данными.&lt;/p&gt;
</description>
<pubDate>Fri, 04 Sep 2020 17:55:08 +0300</pubDate>
</item>


</channel>
</rss>