Image

Всё о функциональности цепочки методов в Pyjanitor и почему она полезна.

Чистый код, чистые данные: почему подход Pyjanitor к цепочке методов — это путь к достижению этой двойной цели.

Всё о функциональности цепочки методов в Pyjanitor и почему она полезна.
Изображение предоставлено редактором.

# Введение

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

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

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

# Понимание цепочки методов

Цепочка вызовов методов — не новинка в программировании: на самом деле, это хорошо зарекомендовавший себя шаблон кодирования. Он заключается в последовательном вызове нескольких методов объекта: всё в одном операторе. Таким образом, вам не нужно переназначать переменную после каждого шага, поскольку каждый метод возвращает объект, который вызывает следующий присоединенный метод, и так далее.

Следующий пример поможет понять основную концепцию. Обратите внимание, как мы могли бы внести несколько простых изменений в небольшой фрагмент текста (строку), используя «стандартный» Python:

text = «Привет, мир!» text = text.strip() text = text.lower() text = text.replace(«world», «python»)

В результате в текстовом виде будет отображаться: «hello python!».

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

text = «Привет, мир!» cleaned_text = text.strip().lower().replace(«world», «python»)

Обратите внимание, что логическая последовательность применяемых операций идет слева направо: все в единой, цельной цепочке мыслей!

Если вы поняли, то теперь прекрасно разбираетесь в концепции цепочки методов. Давайте теперь перенесём это видение в контекст науки о данных с использованием Pandas . Стандартная очистка данных в датафрейме, состоящая из нескольких шагов, обычно выглядит так без использования цепочки методов:

# Традиционный пошаговый подход Pandas df = pd.read_csv(«data.csv») df.columns = df.columns.str.lower().str.replace(' ', '_') df = df.dropna(subset=['id']) df = df.drop_duplicates()

Как мы вскоре увидим, используя цепочку методов, мы построим единый конвейер, в котором операции с датафреймами будут инкапсулированы с помощью скобок. Кроме того, нам больше не понадобятся промежуточные переменные, содержащие нефинальные датафреймы, что позволит создавать более чистый и устойчивый к ошибкам код. И (опять же) в самом верху всего этого Pyjanitor делает этот процесс бесшовным.

# Ввод приложения Pyjanitor: пример приложения

Сама библиотека Pandas в некоторой степени обеспечивает встроенную поддержку цепочек методов. Однако некоторые из её основных функций не были разработаны строго с учётом этого шаблона. Это основная причина создания Pyjanitor, основанного на почти одноимённом пакете R: janitor.

По сути, Pyjanitor можно рассматривать как расширение для Pandas, предоставляющее набор пользовательских процессов очистки данных в удобном для цепочек методов виде. Примеры имен методов его интерфейса прикладного программирования (API) включают clean_names(), rename_column(), remove_empty() и так далее. Его API использует набор интуитивно понятных имен методов, которые выводят выразительность кода на совершенно новый уровень. Кроме того, Pyjanitor полностью опирается на инструменты с открытым исходным кодом и может беспрепятственно работать в облачных и ноутбуковых средах, таких как Google Colab.

Давайте разберемся, как работает цепочка вызовов методов в Pyjanitor, на примере, в котором мы сначала создадим небольшой синтетический набор данных, который намеренно выглядит неаккуратно, и поместим его в объект Pandas DataFrame.

ВАЖНО: чтобы избежать распространенных, но довольно неприятных ошибок, связанных с несовместимостью версий библиотек, убедитесь, что у вас установлены последние доступные версии Pandas и Pyjanitor, предварительно выполнив команду `!pip install —upgrade pyjanitor pandas`.

messy_data = { 'Имя': ['Alice', 'Bob', 'Charlie', 'Alice', None], 'Фамилия': ['Smith', 'Jones', 'Brown', 'Smith', 'Doe'], 'Возраст': [25, np.nan, 30, 25, 40], 'Дата рождения': ['1998-01-01', '1995-05-05', '1993-08-08', '1998-01-01', '1983-12-12'], 'Зарплата ($)': [50000, 60000, 70000, 50000, 80000], 'Empty_Col': [np.nan, np.nan, np.nan, np.nan, np.nan] } df = pd.DataFrame(messy_data) print(«— Беспорядочные исходные данные —«) print(df.head(), «n»)

Теперь мы определяем цепочку методов Pyjanitor, которая применяет ряд обработок как к именам столбцов, так и к самим данным:

cleaned_df = ( df .rename_column('Salary ($)', 'Salary') # 1. Вручную исправьте сложные названия ПЕРЕД тем, как их исказить .clean_names() # 2. Стандартизируйте все (превратите в 'salary') .remove_empty() # 3. Удалите пустые столбцы/строки .drop_duplicates() # 4. Удалите повторяющиеся строки .fill_empty( # 5. Заполните пропущенные значения column_names=['age'], # ВНИМАНИЕ: после предыдущих шагов предполагайте, что имя написано строчными буквами: 'age' value=df['Age'].median() # Извлеките медиану из исходного необработанного df ) .assign( # 6. Создайте новый столбец, используя assign salary_k=lambda d: d['salary'] / 1000 ) ) print(«— Очищенные данные Pyjanitor —«) print(cleaned_df)

Приведённый выше код понятен сам по себе, а встроенные комментарии поясняют каждый метод, вызываемый на каждом этапе цепочки.

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

— Некорректные исходные данные — Имя Фамилия Возраст Дата рождения Зарплата ($) Пустой столбец 0 Элис Смит 25.0 1998-01-01 50000 NaN 1 Боб Джонс NaN 1995-05-05 60000 NaN 2 Чарли Браун 30.0 1993-08-08 70000 NaN 3 Элис Смит 25.0 1998-01-01 50000 NaN 4 NaN Доу 40.0 1983-12-12 80000 NaN — Очищенные данные уборщика — имя__фамилия возраст дата рождения зарплата зарплата_к 0 Элис Смит 25.0 1998-01-01 50000 50.0 1 Боб Джонс 27,5 05.05.1995 60000 60,0 2 Чарли Браун 30,0 8 августа 1993 70000 70,0 4 NaN Доу 40,0 12 декабря 1983 80000 80,0

# Завершение

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

Отличная работа!

Иван Паломарес Карраскоса — лидер, писатель, спикер и консультант в области искусственного интеллекта, машинного обучения, глубокого обучения и магистратуры. Он обучает и направляет других в применении ИИ в реальном мире.

Источник: www.kdnuggets.com

✅ Найденные теги: Pyjanitor, Все, Методов, новости, польза, Функциональность, Цепочка

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Красочный логотип Google Cloud на фоне офисного здания и столбов на улице.
5 контейнеров Docker для малого бизнеса
Некоторые медицинские системы Epic теперь подключаются к SSA через TEFCA.
Зрители в 3D-очках в кинотеатре, черно-белая фотография, ретро стиль.
ideipro logotyp
Цифровые абстрактные облака речи на темно-синем фоне с сеткой и светящимися линиями.
Цифровые пузырьки диалога из сетей на темно-синем фоне, символы коммуникации.
Диаграмма отбора данных и таблица характеристик участников исследования ходьбы и бега.
Диаграмма отбора данных и таблица характеристик участников исследования.
Image Not Found
Красочный логотип Google Cloud на фоне офисного здания и столбов на улице.

Google и Intel углубляют партнерство в области инфраструктуры искусственного интеллекта.

Вкратце Источник изображения: Алекс Краус/Bloomberg / Getty Images В четверг Google и Intel объявили о расширении многолетнего партнерства, в рамках которого Google Cloud продолжит использовать инфраструктуру искусственного интеллекта Intel и совместно разрабатывать процессоры. Google Cloud будет использовать…

Апр 10, 2026
5 контейнеров Docker для малого бизнеса

5 контейнеров Docker для малого бизнеса

Вот пять готовых к использованию контейнеров Docker, которые можно развернуть уже сегодня, чтобы упростить работу любого малого бизнеса. Изображение предоставлено редактором. # Введение Малые предприятия часто оказываются в затруднительном положении в отношении инфраструктуры данных. Они сталкиваются с…

Апр 10, 2026
Некоторые медицинские системы Epic теперь подключаются к SSA через TEFCA.

Некоторые медицинские системы Epic теперь подключаются к SSA через TEFCA.

В настоящее время 13 больниц и 374 клиники обмениваются медицинскими картами пациентов напрямую с Управлением социального обеспечения через общенациональную сеть взаимодействия. Электронные медицинские карты (ЭМК, ЭМР) Фото: MoMo Productions/Getty Images Как сообщила компания, медицинские организации, использующие электронные…

Апр 10, 2026
Зрители в 3D-очках в кинотеатре, черно-белая фотография, ретро стиль.

Забудьте о мультивселенной. В плюривселенной мы вместе создаём реальность.

Радикальная идея, разрешающая многие квантовые парадоксы, предполагает отсутствие объективного взгляда на реальность. Как можно объединить космос, рассматривая его с разных точек зрения? JR Eyerman/The LIFE Picture Collection/Shutterstock Что есть настоящее? Природа постоянно меняющегося настоящего момента всегда завораживала…

Апр 10, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых