Авторизоваться
Аким Солянкин 5 дней назад Опубликована

Эта библиотека Python автоматизирует Pandas и помогает заменить Excel 

Pandas - лучший инструмент для анализа данных в Python, и он имеет много преимуществ по сравнению с такими инструментами, как Microsoft Excel, но переход с Excel на Python является сложной задачей для тех, у кого мало опыта программирования или которые плохо знакомы с Pandas.

К счастью, это уже не так. Несколько недель назад я наткнулся на библиотеку Python, которая помогает нам работать с Pandas, как если бы мы использовали Excel.

В этой статье я покажу вам, как создавать сводные таблицы, объединять таблицы, фильтровать данные и многое другое с помощью библиотеки Python, которая позволяет нам работать с фреймом данных Pandas с использованием интерфейса, аналогичного Excel, и автоматически генерирует код Pandas для нас.

Переход с Excel на Python никогда не был таким простым!

Набор данных и установка

Набор данных

В этом руководстве мы будем использовать данные из CSV-файла «StudentPerformance», доступного на Google Диске, который я создал сам. Это случайные данные, которые содержат оценки, полученные студентами по разным предметам, и с помощью Mito мы легко перейдем от таблиц Excel к фреймам данных Python.

Убедитесь, что файл CSV и ваш скрипт Python находятся в одном каталоге.

Установка

Чтобы легко создавать сводные таблицы, визуализации и выполнять операции, которые вы выполняли бы в Excel или Pandas, нам нужно только установить библиотеку mitosheet (убедитесь, что у вас Python 3.6 или выше, а также JupyterLab)

Чтобы установить mitosheet, сначала откройте терминал или командную строку, а затем выполните следующую команду (если возможно, установите ее в новой виртуальной среде):

python -m pip install mitoinstaller
python -m mitoinstaller install

Это все, что нам нужно для начала работы с Mito! Подробнее об установке читайте в официальной документации.

Создайте Dataframe с помощью mitosheet

Чтобы создать фрейм данных с использованием Python, нам нужно будет импортировать pandas и использовать метод .read_csv (), но с Mito нам нужно только запустить import mitosheet, набрав mitosheet.sheet().

import mitosheet
mitosheet.sheet()

Приведенный выше код создаст mitosheet. Если лист не отображается при вызове mitosheet.sheet (), перезапустите JupyterLab.

После этого мы можем импортировать набор данных, нажав кнопку + в нижнем левом углу. Затем выберите файл StudentsPerformance.csv, как показано ниже.

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

После импорта CSV создается фрейм данных с тем же именем файла. В дополнение к этому Mito автоматически генерирует код в ячейке ниже.

from mitosheet import *; register_analysis('UUID-b580825e-1ba5-47fc-851a-612cf52b9543')
# Imported StudentsPerformance.csv
import pandas as pd
StudentsPerformance_csv = pd.read_csv(r'StudentsPerformance.csv')

Это все, что вам нужно для импорта данных с помощью mitosheet. Теперь давайте автоматизируем некоторые общие методы Pandas. Вы можете продолжить чтение или посмотреть мой видеоурок.

Добавить новый столбец и переименовать столбец

Добавление нового столбца - обычная задача, которую мы выполняем в Excel/Pandas. В Excel нам нужно только щелкнуть правой кнопкой мыши, чтобы создать новый столбец, а с Pandas мы должны использовать этот метод .insert().

С Mito мы можем получить лучшее из обоих миров. Чтобы добавить новый столбец, вам нужно всего лишь нажать кнопку «Добавить столбец». Затем дважды щелкните имя столбца, чтобы установить желаемое имя.

Давайте сделаем это, создав новый столбец, который мы назовем «average».

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

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

# Added column new-column-uca5 to StudentsPerformance_csv
StudentsPerformance_csv.insert(8, 'new-column-uca5', 0)
# Renamed new-column-uca5 to average in StudentsPerformance_csv
StudentsPerformance_csv.rename(columns={'new-column-uca5': 'average'}, inplace=True)

Суммируем строку

Mito может помочь нам суммировать значения строк, как если бы мы использовали Microsoft Excel. Нам нужно только найти ячейку, в которой мы хотим ввести формулу, затем нажать = и выбрать столбцы, которые мы хотим суммировать, и поставить оператор + между ними.

Чтобы лучше понять, как это работает, давайте посчитаем средний балл за экзамены по математике, чтению и письму. Найдите ячейку в столбце «average», которое мы создали на предыдущем шаге, напишите формулу, показанную на гифке ниже, нажмите ввод и вуаля!

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

Если вам интересно узнать, что сделал Mito, вот фрагмент кода, автоматически сгенерированного Mito.

# Set new-column-uca5 in StudentsPerformance_csv to =(math score+reading score+writing score)/3
StudentsPerformance_csv['average'] = (StudentsPerformance_csv['math score']+StudentsPerformance_csv['reading score']+StudentsPerformance_csv['writing score'])/3

Фильтр DataFrame

Мы можем фильтровать данные по одному или нескольким условиям.

На основе 1 условия

Допустим, мы хотим показать только данные, относящиеся к полу female. С Mito нам нужно только выбрать столбец «gender», затем щелкнуть значок воронки и выбрать то, что мы хотим отфильтровать. В этом случае мы переходим в раздел «filter», нажимаем «add filter» и устанавливаем «is exactly» равным «female».

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

На основании 2 или более условий

Теперь предположим, что мы хотим показать данные, относящиеся к полу female, принадлежащему к group B.

Здесь нам нужно только повторить шаги, которые мы выполнили, чтобы выбрать пол female, но теперь с group B. Выберите столбец «группа», нажмите значок воронки, перейдите в раздел «фильтр», нажмите «добавить фильтр» и установите «точно» равным «группе B».

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

Код ниже соответствует предыдущим фильтрам.


# Filtered gender in StudentsPerformance_csv
StudentsPerformance_csv = StudentsPerformance_csv[StudentsPerformance_csv['gender'] == 'female']
# Filtered race/ethnicity in StudentsPerformance_csv
StudentsPerformance_csv = StudentsPerformance_csv[StudentsPerformance_csv['race/ethnicity'] == 'group B']

Создать сводную таблицу

Мы можем создать сводную таблицу в Python, как в Excel, используя mitosheet. Сначала нажмите кнопку «Сводка», а затем выберите элементы, которые вы хотите включить в строки, столбцы и значения.

В нашем примере мы создадим сводную таблицу, в которой будут показаны средние оценки по математике и чтению для всех групп внутри столбца race/ethnicity(группового столбца). Для этого выполните действия, показанные на гифке ниже.

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

Если вам интересно узнать код за кулисами, вот его отрывок.

# Imported StudentsPerformance.csv
import pandas as pd
StudentsPerformance_csv = pd.read_csv(r'StudentsPerformance.csv')
# Pivoted StudentsPerformance_csv into df2
unused_columns = StudentsPerformance_csv.columns.difference(set(['race/ethnicity']).union(set([])).union(set({'math score', 'reading score'})))
tmp_df = StudentsPerformance_csv.drop(unused_columns, axis=1)
pivot_table = tmp_df.pivot_table(
    index=['race/ethnicity'],
    values=['math score', 'reading score'],
    aggfunc={'math score': ['mean'], 'reading score': ['mean']}
)
pivot_table.columns = [flatten_column_header(col) for col in pivot_table.columns.values]
df2 = pivot_table.reset_index()

Создайте гистограмму

Как и Excel, Mito помогает нам создавать базовую визуализацию в Python с помощью пары щелчков мышью.

Давайте создадим гистограмму созданной нами ранее сводной таблицы. Для этого нажмите кнопку «График», затем убедитесь, что источником данных является новая сводная таблица «df2», которую мы создали, а тип диаграммы установлен на «бар».

На оси X мы должны включить столбец «раса / этническая принадлежность» (столбец группы), а на оси Y - столбец «средний балл совпадения».

Вот и все! Мы могли бы сделать все это за пару минут с Мито. Если у вас большой опыт работы с Pandas, возможно, вы могли бы получить результаты так же быстро, как Mito, но эта библиотека пригодится, если вы новичок в Pandas или Python

Объединить 2 таблицы

Объединение 2 таблиц может быть легко выполнено с помощью Mito. В этом примере мы увидим, как выполнить внутреннее соединение. Для этого нам понадобятся две таблицы с общим столбцом, поэтому загрузите CSV-файлы “StudentsPerformance_id” и “Languagescore” с моего Github. Чтобы импортировать эту вторую таблицу, выполните действия, описанные в первом разделе этой статьи “Создание фрейма данных”.

Как только вы импортируете две таблицы в Mito, нажмите на кнопку “Объединить”, чтобы присоединиться к ним. Убедитесь, что для параметра “Ключ слияния” в обеих таблицах установлено значение “идентификатор” (это общий столбец, который нам нужен для внутреннего соединения).

Коментарии
Авторизоваться что-бы оставить комментарий
Присоединяйся в тусовку
Наш сайт использует файлы cookie для вашего максимального удобства. Пользуясь сайтом, вы даете свое согласие с условиями пользования cookie