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

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

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

галерея

Буровая установка в пустыне на фоне скал и голубого неба.
Бесплатный 5-дневный курс по искусственному интеллекту от Kaggle и Google
Исследование показало, что искусственный интеллект выявляет значительные ошибки в диагностике типов рака.
Пояс астероидов в космосе с крупными каменными объектами на фоне звёзд.
Компания CorTec получила от FDA статус прорывного продукта в области интерфейса мозг-компьютер для реабилитации после инсульта — Medical Device Network
Компания CorTec получила от FDA статус прорывного продукта в области интерфейса мозг-компьютер для реабилитации после инсульта — Medical Device Network
ideipro logotyp
ideipro logotyp
Ученый в лаборатории, работающий с современным лабораторным оборудованием.
Image Not Found
Буровая установка в пустыне на фоне скал и голубого неба.

Хакер украл 700 000 фунтов стерлингов у британской энергетической компании, перенаправив платеж.

Вкратце Источник изображений: Jon G. Fuller/VWPics/Universal Images Group / Getty Images Британская нефтегазовая компания Zephyr Energy заявляет, что кто-то украл 700 000 фунтов стерлингов (около 1 миллиона долларов) у одной из ее дочерних компаний в США, перенаправив…

Апр 10, 2026
Исследование показало, что искусственный интеллект выявляет значительные ошибки в диагностике типов рака.

Исследование показало, что искусственный интеллект выявляет значительные ошибки в диагностике типов рака.

Врачи, использующие алгоритм одного из поставщиков, обнаружили ошибки в диагностике плоскоклеточного рака легких, влияющие на решения о лечении и результаты лечения пациентов. Главный клинический директор компании подробно рассказывает об исследовании, опубликованном в журнале JAMA. Global Artificial Intelligence…

Апр 10, 2026
Пояс астероидов в космосе с крупными каменными объектами на фоне звёзд.

Мы обнаружили огромный астероид, вращающийся с невероятной скоростью.

Астрономы обнаружили астероид шириной 710 метров, который совершает один оборот за 1,9 минуты, что настолько быстро, что он должен был бы разлететься на части. Художественное изображение астероида 2025 MN45 Обсерватория имени Веры К. Рубин, финансируемая Национальным научным…

Апр 10, 2026
Компания CorTec получила от FDA статус прорывного продукта в области интерфейса мозг-компьютер для реабилитации после инсульта — Medical Device Network

Компания CorTec получила от FDA статус прорывного продукта в области интерфейса мозг-компьютер для реабилитации после инсульта — Medical Device Network

Аналитики GlobalData прогнозируют, что интерфейсы мозг-компьютер находятся на пороге коммерциализации, а первый выход на рынок ожидается в 2030 году. Фото: Who is Danny / Shutterstock.com Интерфейс «мозг-компьютер» (BCI) компании CorTec получил от Управления по санитарному надзору за…

Апр 10, 2026

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