5. Обработка строк

Строковые данные часто требуют очистки и преобразования. Методы .str помогают очищать текстовые данные: lower()upper()title()replace()strip().

Основные методы

  • df['col'].str.lower() - перевод в нижний регистр
  • df['col'].str.upper() - перевод в верхний регистр
  • df['col'].str.title() - заглавные буквы слов
  • df['col'].str.strip() - удаление пробелов по краям (strip() принимает в качестве параметров строку с символами, которые будут удалены. По умолчанию, пробел)
  • df['col'].str.replace('old', 'new') - замена подстрок
  • df['col'].str.contains('pattern') - поиск подстроки
  • df['col'].str.len() - длина строки
Пример

df['name'] = df['name'].str.title()


Задание

Создайте функцию clean_hero_strings(df), которая выполняет всю очистку строковых данных автоматически. Функция должна вернуть исправленный DataFrame.
В функции необходимо реализовать следующий функционал.

1. Базовая очистка

  •   Удалите лишние пробелы во всех текстовых столбцах (namealiasuniverse)
  •   Приведите имена (name) к формату "Имя Фамилия" (Title Case)
  •   Приведите псевдонимы (alias) к верхнему регистру


2. Стандартизация

   Приведите названия вселенных (`universe`) к единому формату: "Marvel" или "DC" (замените "marvel comics" и "dc comics" на "Marvel" и "DC" соответственно. Других значений в датасете в указанном столбце нет)
 

Вставьте недостающие фрагменты кода
Python
import pandas as pd


def clean_hero_strings(df):       

df = pd.read_csv("marvel_characters5.csv")

df = clean_hero_strings(df)

print(df[['name', 'alias', 'universe']])
print(df['universe'].value_counts())