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

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

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

галерея

GPS-навигация в автомобиле с картой и музыкальным плеером на дисплее.
Логотип OpenAI на экране смартфона, фон яркий и размыт.
ideipro logotyp
Эволюция вычислительных устройств: счёты, линейка, калькулятор, ПК, микрочип.
ideipro logotyp
Группа людей перед баннерами MIT и HPI в конференц-зале.
Цветные волнистые линии на темном фоне, образующие узор.
Новая структура позволяет агентам ИИ переписывать свои навыки без переобучения базовой модели.
Ребёнок в одеяле лежит на пушистом коврике, рядом рука взрослого.
Image Not Found
GPS-навигация в автомобиле с картой и музыкальным плеером на дисплее.

Как наши цифровые устройства ставят под угрозу наше право на неприкосновенность частной жизни

Профессор права Эндрю Гатри Фергюсон беседует с изданием Ars о своей новой книге «Ваши данные будут использованы против вас». Источник: Google Настройки текста Текст рассказа Размер Маленький Стандартный Большой Ширина * Стандартный Широкий Ссылки Стандартный Оранжевый *…

Апр 10, 2026
Логотип OpenAI на экране смартфона, фон яркий и размыт.

Генеральный прокурор Флориды проведет расследование в отношении компании OpenAI, утверждая о возможной связи с инцидентом со стрельбой в Университете штата Флорида.

Источник изображений: Thomas Fuller/SOPA Images/LightRocket / Getty Images Генеральный прокурор Флориды Джеймс Утмайер объявил в четверг, что его ведомство проведет расследование в отношении компании OpenAI по факту предполагаемого причинения вреда несовершеннолетним, потенциальной угрозы национальной безопасности и возможной…

Апр 10, 2026
ideipro logotyp

Промокоды Canon на скидку 30% | Апрель 2026

В апреле воспользуйтесь купонами Canon и получите дополнительную скидку 10% или 30%, а также сэкономьте до 1600 долларов на фотоаппаратах, принтерах и многом другом. Источник: www.wired.com ✅ Найденные теги: 2026, Canon, Апрель, новости, Промокоды, СкидкаПохожие записиКак наши…

Апр 10, 2026
Эволюция вычислительных устройств: счёты, линейка, калькулятор, ПК, микрочип.

Мустафа Сулейман: Развитие ИИ в ближайшее время не зайдёт в тупик — вот почему.

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

Апр 10, 2026

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