Bamboolib

Установка Bamboolib

Установка достаточно проста:

pip install bamboolib

Чтобы Bamboolib работал с Jupyter и Jupyterlab, нужно установить дополнительные расширения. С помощью следующей команды устанавливаются расширения для Jupyter Notebook:

jupyter nbextension enable --py qgrid --sys-prefix
jupyter nbextension enable --py widgetsnbextension --sys-prefix
jupyter nbextension install --py bamboolib --sys-prefix
jupyter nbextension enable --py bamboolib --sys-prefix

Здесь можно найти процесс установки для Jupyterlab.

Проверка установки Bamboolib

Чтобы проверить, правильно ли работает Bamboolib, откройте Jupyter notebook и выполните следующие команды:

import bamboolib as bam
import pandas as pd
data = pd.read_csv(bam.titanic_csv)
bam.show(data)

При запуске команда запрашивает лицензионный ключ, который нужен для использования bamboolib. Приобрести ключ можно здесь. Перед покупкой вы можете попробовать демо-версию, чтобы увидеть библиотеку в действии.

После активации bamboolib начинается самое интересное. Вывод Bamboolib выглядит следующим образом:

Для работы с Bamboolib мы будем использовать данные по классификации цен на мобильные устройства от Kaggle. Сначала создадим классификатор, который предсказывает ценовой диапазон мобильных телефонов на основе характеристик:

train = pd.read_csv("../Downloads/mobile-price-classification/train.csv")
bam.show(train)

Для запуска Bamboolib нужно выполнить простой вызов bam.show(train).

Простое исследование данных

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

Bamboolib значительно упрощает его.

Например, при нажатии на Visualize Dataframe отображается представление данных.

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

Помимо этого, можно получить одномерную статистику на уровне столбцов. Попробуем получить информацию о целевой переменной — Price Range:

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

Давайте посмотрим, как ОП влияет на ценовой диапазон. Для этого мы будем использовать двумерные графики:

Получение подобных графиков со стандартными библиотеками Python, такими как seaborn или plotly, обычно требует некоторое количество кода. Несмотря на то, что plotly_express предоставляет простые функции для большинства графиков, Bamboolib создает множество важных графиков автоматически.

Мы видим, что с увеличением ОП увеличивается и диапазон цен. Помимо этого, здесь отображена оценка F1 0,676 для переменной RAM. Такой график можно создать для каждой переменной в наборе данных.

Код этих диаграмм можно экспортировать для использования в презентациях либо в формате PNG.

Для этого просто скопируйте фрагмент кода, который показан над каждым графиком. Например, при отображении price_range в сравнении с ram предоставляется опция загрузки этих графиков в формате PNG. В бэкенде все они являются графиками plotly.

bam.plot(train, 'price_range', 'ram')

Преобразование данных на основе графического интерфейса

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

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

Одной из приятных особенностей является предоставление кода. Ниже представлен код для отбрасывания пропущенных значений, который заполняется автоматически.

train = train.loc[train['price_range'].notna()]
train.index = pd.RangeIndex(len(train))

Он работает, как Microsoft Excel для бизнес-пользователей, при этом предоставляет весь код для продвинутых.

Ниже представлен ещё один пример использования объединения:

Код выглядит следующим образом:

train = train.groupby(['price_range']).agg({'battery_power': ['mean'], 'clock_speed': ['std']})
train.columns = ['_'.join(multi_index) for multi_index in train.columns.ravel()]
train = train.reset_index()

Заключение

Графический интерфейс Bamboolib довольно интуитивен и с ним приятно работать. Проект все еще находится в начале разработки, однако уже подаёт множество надежд.

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


Перевод статьи Rahul Agarwal: Bamboolib — Learn and use Pandas without Coding