Вы когда-нибудь создавали потрясающую сюжетную функцию, но хотели бы поделиться ею со своими коллегами или со всем миром? С пакетом pandex просто нажмите на GitHub, и любой сможет установить его в свою локальную установку pandas с помощью всего одной строки кода.
Этот график — отличный способ визуализировать отношения между строками и столбцами в кадре данных. Он был создан с использованием matplotlib
круговых диаграмм для создания слоев сегментов и срезов. Это достаточно сложная функция, но теперь, когда она упакована как функция в общедоступном репозитории GitHub, ее могут легко использовать другие прямо из любого фрейма данных pandas.
Первый шаг — установить pandex:
$ pip install pandex
Пакет pandex загружает pandas
и включает структуру расширения в пространстве имен .ext
. Чтобы использовать функцию графика клина, вы должны сначала импортировать ее в локальную настройку панд:
import pandex as pd pd.ext.import_extension('github:connectedblue/pdext_collection/wedge_plot -> wedge_plot')
Вот и все! Теперь эту функцию можно использовать из каждого отдельного DataFrame
созданного из pd
. Давайте воспользуемся функцией для анализа трофеев, выигранных английскими футбольными клубами за эти годы:
import pandex as pd df = pd.DataFrame({ 'League Cup': [8,5,2,5,6,4,4], 'FA Cup': [7,12,13,8,6,8,2], 'League Champions':[18,20,13,6,6,2,1], 'UEFA Cup': [3,0,0,0,0,2,0], 'European Cup':[6,3,0,1,0,0,2], }) df.index=["Liverpool","Man United","Arsenal","Chelsea","Man City","Spurs", "Notts F"]
Фрейм данных df
содержит данные о том, сколько раз соревнование выигрывали разные футбольные клубы. Поскольку оно было создано с использованием pandex
, ранее импортированное расширение доступно для использования в любое время в пространстве имен df.ext
:
fig=df.ext.wedge_plot()
Вызов функции без параметров показывает стиль печати по умолчанию на фотографии в начале этой статьи.
Довольно аккуратно, да? Но мы можем сделать больше — эта функция имеет множество опций для управления каждым аспектом отображения графика клина. Давайте снова вызовем функцию с другим набором параметров:
fig = df.ext.wedge_plot(startangle=-40, all_slices_percent = 0.30,alpha=.65, hide_ring_label=False, slice_label_rotate=False, legend_fontstyle = 'italic', legend_fontweight='normal', legend_units=['cups','cups','titles','cups','cups',], title='English Football Clubs\nAll-Time Trophy Wins', explode=0.02, title_y=0.85, title_x=0.2, circle_label='2019', circle_fontsize=23, legend_y_start=-0.6)
Это создает более приятный вид:
Совершенно ясно, без дальнейшего анализа, вы можете видеть, что «Ливерпуль» — величайшая футбольная команда.
Итак, как узнать, какие есть варианты для создания сюжета? Pandex использует встроенную функцию справки для отображения строки документа функций непосредственно из фрейма данных:
help(df.ext.wedge_plot)
Справка довольно длинная, поэтому я не буду воспроизводить ее здесь, но вы можете изменить цвета, размеры клиньев, форматы этикеток и многое другое.
Создание собственных функций pandex
Помимо использования чужих функций в анализе данных, почему бы не опубликовать некоторые из ваших собственных для использования другими?
Вы можете посмотреть на код клиновидного графика, чтобы получить представление о том, как подготовить свои собственные функции. Есть только несколько требований:
- Функция должна иметь объект pandas
DataFrame
в качестве первого параметра. - Если используются какие-либо локальные импорты, они должны использовать относительную нотацию импорта, используемую в модулях (т.е. с префиксом точки)
- Функция может существовать где угодно в общедоступном репозитории GitHub.
Вот и все — любые другие зависимости и функциональность пакета определяются как обычно.
Если вы создаете функцию с именем awesome_function
, вы можете импортировать ее локально для целей тестирования во время разработки (при условии, что функция находится в файле в текущем каталоге):
import pandex as pd pd.ext.import_extension('. -> awesome_function') pd.ext.reinstall_extension('awesome_function')
Строка pd.ext.reinstall_extension
необходима только в том случае, если вы изменили исходный файл функции с момента первого импорта.
Когда вы довольны своим творением, вы можете отправить коммит, и ваша функция может быть установлена кем угодно следующим образом:
import pandex as pd pd.ext.import_extension('github:yourusername/yourrepo/path/to/your/function -> awesome_function')
Вот и все!
Получайте удовольствие, создавая и делясь функциями pandex. Дайте мне знать в Твиттере @__chris_shaw__