Mito: быстрый анализ данных на Python

Представьте, что вам нужно изучить данные и преобразовать их, но времени не хватает. Вы владеете методами Pandas, которые нужно использовать для построения столбца, его сортировки, изменения имени и создания визуализации, но написание кода для получения всего этого займет больше времени, чем вы можете себе позволить.

Что же делать? Можно быстро написать код и довести дело до конца (что может привести к глупым ошибкам) или же использовать библиотеку Mito, чтобы исследовать и преобразовать данные за несколько минут. Mito  —  это библиотека Python, которая позволяет проводить анализ данных так же быстро, как если бы вы работали с электронными таблицами в Microsoft Excel.

Чтобы разобраться в том, как она работает, для начала скачайте набор данных и установите библиотеку. В этом руководстве будет использоваться набор данных игроков FIFA 22. Его можно загрузить здесь. Мы будем исследовать этот набор данных с помощью библиотеки Mito. Чтобы ее установить, скачайте либо Jupyter Notebook, либо Jupyter Lab. Затем выполните приведенную ниже команду в терминале или командной строке.

python -m pip install mitoinstaller
python -m mitoinstaller install

Чтобы узнать больше о Mito и ее установке, ознакомьтесь с официальной документацией.

После установки Mito понадобится создать mitosheet, чтобы приступить к работе. Затем строить столбцы и визуализации можно будет в пару кликов.

Импорт датафрейма

Перед импортом датафрейма убедитесь, что загруженный набор данных находится в рабочем каталоге. Если это так, нажмите на кнопку Import, затем найдите название набора данных, выберите его и кликните на Import.

Изображение автора

Главное преимущество библиотеки Mito в том, что она генерирует код Python после всех действий, произведенных в mitosheet.

Вот сгенерированный код, который выполнил операцию импорта:

# Импорт players_22.csv
import pandas as pd
players_22 = pd.read_csv(r'players_22.csv')

Сортировка значений в столбце

Сортировать значения с помощью библиотеки Mito просто  —  достаточно нажать на кнопку “Сортировать” (Filter) и выбрать “Возрастание” (Ascending) или “Убывание” (Descending).

Отсортируем общий результат футболистов по убыванию, а затем по возрастанию, чтобы установить лучшего и худшего игроков.

Изображение автора

Через пару секунд вы выясните, что игроком с самым высоким баллом является Лионель Месси, а игроком с самым низким баллом  —  Эмануэль Лалчханчхуаха.

Вот код Python, который без Mito пришлось бы писать самостоятельно:

# Сортировка в порядке убывания
players_22 = players_22.sort_values(by='overall', ascending=False, na_position='last')

# Сортировка по возрастанию
players_22 = players_22.sort_values(by='overall', ascending=True, na_position='first')

Создание нового столбца, его переименование и применение формул

Синтаксис для создания новых столбцов и изменения их имен в Pandas иногда трудно запомнить. Хорошая новость заключается в том, что в Mito нужно нажать всего пару кнопок, чтобы выполнить все эти действия за считанные секунды!

Создадим новый столбец, который будет содержать данные о росте игроков, выраженном в метрах. Для этого нажмите на кнопку Add Col (“Добавить столбец”), затем дважды кликните на названии столбца, чтобы изменить его на height_m. В этом новом столбце нужно преобразовать рост из сантиметров в метры, введя формулу =height_cm/100.

Изображение автора

Отлично! Теперь можно отсортировать данные столбца, чтобы найти самого высокого и самого низкого игроков. Ниже приведен код, сгенерированный Mito:

# Добавление столбца new-column-wo9f
players_22.insert(12, 'new-column-wo9f', 0)

# Переименование столбцов в height_m
players_22.rename(columns={'new-column-wo9f': 'height_m'}, inplace=True)

# Установка формулы height_m
players_22['height_m'] = players_22['height_cm']/100

Теперь, в качестве упражнения, создайте новый столбец BMI (ИМТ, индекс массы тела). Формула для его расчета: BMI = kg/m2. Выполните следующие шаги, чтобы создать этот новый столбец.

Изображение автора

Вот код, сгенерированный Mito:

# Добавление столбца new-column-o0fb
players_22.insert(14, 'new-column-o0fb', 0)

# Переименование столбцов в bmi
players_22.rename(columns={'new-column-o0fb': 'bmi'}, inplace=True)

# Установка формулы bmi
players_22['bmi'] = players_22['weight_kg']/(players_22['height_m']*players_22['height_m'])

Создание визуализации

Обычным этапом в процессе изучения числовых данных является создание гистограммы. С помощью Mito можно создать это и многие другие графические представления данных всего за пару кликов.

Подготовим гистограмму роста игроков. Для этого достаточно нажать на кнопку Graph (“Граф”) и выбрать нужный тип графического представления. Затем на оси X добавим данные, которые необходимо отобразить.

Изображение автора

Сортировка датафрейма на основе нескольких условий

Сортировать данные в Mito можно точно так же, как это делается в Excel! Нужно только нажать на значок сортировки, перейти в раздел Filter, нажать на Add a Filter и затем выбрать Add a filter (“Добавить сортировку”), если нужно задать одно условие, или Add a group of filters (“Добавить группу сортировок”), если нужно задать несколько условий.

В данном примере в столбце age (“возраст”) отсортируем игроков в возрасте от 20 до 30 лет, поэтому выберем Add a group of filters. А вот в столбце club_name (“название клуба”) отсортируем игроков ФК “Барселона”, поэтому выберем Add a Filter.

Изображение автора

Вот код, сгенерированный Mito:

# Сортировка по возрасту
players_22 = players_22[((players_22[‘age’] > 20) & (players_22[‘age’] < 30))]

# Сортировка по названию клуба
players_22 = players_22[players_22[‘club_name’] == ‘FC Barcelona’]

Создание сводной таблицы

Чтобы создать сводную таблицу в Pandas, необходимо помнить синтаксис метода .pivot_table (что иногда является проблемой). К счастью, шаги по созданию сводной таблицы в Mito аналогичны Excel.

Выясним на основе набора данных, в каких странах самые высокие игроки. Для этого щелкните по таблице Pivot и выберите nationality_names в Rows (форме “Строки”) и height_cm в Values (в форме “Значения”), как показано ниже. Не забудьте выбрать mean (“среднее значение”) в выпадающем списке.

Изображение автора

Вот код, сгенерированный Mito (как видите, синтаксис не так-то легко запомнить, особенно новичку):

# Сведение в таблицу players_22
tmp_df = players_22[[‘nationality_name’, ‘height_cm’]]
pivot_table = tmp_df.pivot_table(
 index=[‘nationality_name’],
 values=[‘height_cm’],
 aggfunc={‘height_cm’: [‘mean’]}
)
pivot_table.set_axis([flatten_column_header(col) for col in pivot_table.keys()], axis=1, inplace=True)
players_22_pivot = pivot_table.reset_index()

# Сортировка средних значений height_cm в порядке убывания
players_22_pivot = players_22_pivot.sort_values(by=’height_cm mean’, ascending=False, na_position=’last’)

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Frank Andrade: Super Fast Data Analysis in Python

Предыдущая статья7 способов ускорить ревью кода
Следующая статьяРеализация слайдера изображений и текста на React.js с вариантами оптимизации