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, Все, Методов, новости, польза, Функциональность, Цепочка

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

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

галерея

Заседание в конференц-зале с участием людей за круглым столом и экраном с презентацией.
Конференция в зале, участники за круглым столом обсуждают презентации.
Процессор Intel Core на фоне фирменной коробки, технология для ПК.
Учёные в лаборатории проводят исследования в защитных халатах и перчатках.
Коровы на пастбище возле биогазовой установки летом.
Космический аппарат приближается к крупному астероиду в космосе.
Баскетболисты играют в зале, один делает дриблинг.
Запуск ракеты NASA Artemis 2 с космодрома, подъем с дымом.
Красочный логотип Google Cloud на фоне офисного здания и столбов на улице.
Image Not Found
Конференция в зале, участники за круглым столом обсуждают презентации.

Для РАН — исторический момент

Отчёт для Российской академии наук Краткое содержание для тех, кто плохо читает и ещё хуже думает: Математик понял, что агент I42 — не…

Апр 10, 2026
Заседание в конференц-зале с участием людей за круглым столом и экраном с презентацией.

Для РАН — исторический момент

Отчёт для Российской академии наук Краткое содержание для тех, кто плохо читает и ещё хуже думает: Математик понял, что агент I42 — не…

Апр 10, 2026
Процессор Intel Core на фоне фирменной коробки, технология для ПК.

Бенчмарк Geekbench 6.7 научился определять инструмент Intel Binary Optimization Tool

Primate Labs, разработчик программного обеспечения Geekbench, оповестил пользователей о доступности новой версии бенчмарка v6.7, которая,…

Апр 10, 2026
Запуск ракеты NASA Artemis 2 с космодрома, подъем с дымом.

Стартовала первая за полвека пилотируемая миссия к Луне

© NASAСегодня ночью с космодрома на мысе Канаверал стартовала миссия Arthemis II — первая пилотируемая миссия к Луне более, чем за полвека…

Апр 10, 2026

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