Введение
В этом практическом занятии показано, как обрабатывать текстовые данные в 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. Мы изучили, как хранить текстовые данные, использовать методы строк для предобработки и преобразования данных, извлекать подстроки с использованием регулярных выражений, проверять, содержат ли элементы определенный паттерн или соответствуют ли им паттерну, и создавать фиктивные переменные. Эти методы являются фундаментальными для обработки текстовых данных в алгоритмах машинного обучения.