Обработка текстовых данных в Pandas

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Советы по использованию ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Хранение текстовых данных

В pandas вы можете хранить текстовые данные двумя способами: с использованием NumPy-массива с типом object или расширения типа StringDtype. Мы рекомендуем использовать StringDtype, так как он безопаснее и более специфичен, чем общий тип object.

import pandas as pd

## создать серию с типом `object`
s1 = pd.Series(["a", "b", "c"], dtype="object")

## создать серию с типом `StringDtype`
s2 = pd.Series(["a", "b", "c"], dtype="string")

Использование методов строк

Pandas предоставляет набор методов для обработки строк, которые упрощают работу с текстовыми данными. Эти методы автоматически исключают пропущенные/NA значения.

s = pd.Series(
    ["A", "B", "C", "Aaba", "Baca", np.nan, "CABA", "dog", "cat"], dtype="string"
)

## преобразовать в нижний регистр
s.str.lower()

## преобразовать в верхний регистр
s.str.upper()

## вычислить длину каждой строки
s.str.len()

Извлечение подстрок

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

## извлечь первую цифру из каждой строки
s = pd.Series(["a1", "b2", "c3"], dtype="string")
s.str.extract(r"(\d)", expand=False)

Проверка строк

Вы можете проверить, содержат ли элементы определенный паттерн или соответствуют ли им паттерну, используя методы contains и match соответственно.

## проверить, содержит ли каждая строка паттерн "a"
s.str.contains("a", na=False)

## проверить, соответствует ли каждая строка паттерну "a"
s.str.match("a", na=False)

Создание фиктивных переменных

Вы можете создавать фиктивные переменные из текстовых данных с использованием метода get_dummies.

## создать фиктивные переменные
s = pd.Series(["a", "a|b", np.nan, "a|c"], dtype="string")
s.str.get_dummies(sep="|")

Обзор

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