Рубрики

Python | Pandas Series.str.replace () для замены текста в серии

Python — отличный язык для анализа данных, в первую очередь благодаря фантастической экосистеме пакетов Python, ориентированных на данные. Pandas — один из тех пакетов, который значительно упрощает импорт и анализ данных.

Series.str.replace() Pandas Series.str.replace() работает как метод Python .replace() , но работает и с Series. Перед вызовом .replace () для серии Pandas, необходимо поставить префикс .str , чтобы отличить его от метода замены по умолчанию в Python.

Syntax: Series.str.replace(pat, repl, n=-1, case=None, regex=True)

Parameters:
pat: string or compiled regex to be replaced
repl: string or callabe to replace instead of pat
n: Number of replacement to make in a single string, default is -1 which means All.
case: Takes boolean value to decide case sensitivity. Make false for case insensitivity
regex: Boolean value, if True assume that the passed pattern is a regex

Return Type: Series with replaced text values

Чтобы загрузить CSV, использованный в коде, нажмите здесь.

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

Пример № 1: замена значений в столбце возраста

В этом примере все значения в столбце возраста, имеющие значение 25.0, заменяются на «Двадцать пять» с использованием str.replace ()
После этого в методе .where () создается и передается фильтр для отображения только тех строк, для которых Age = «Twenty Five ».

# импорт модуля панд

import pandas as pd

  
# чтение CSV-файла из URL

data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")

  
# перезаписать столбец с замененным значением возраста

data["Age"]= data["Age"].replace(25.0, "Twenty five")

  
# создание фильтра для столбца возраста
# где age = "Двадцать пять"

filter = data["Age"]=="Twenty five"

  
# печать только отфильтрованных столбцов

data.where(filter).dropna()

Выход:
Как показано на выходном изображении, все значения в столбце «Возраст», имеющие возраст = 25,0, были заменены на «двадцать пять».

Пример № 2: нечувствительность к регистру

В этом примере название команды Boston Celtics заменяется на New Boston Celtics . В параметрах, вместо передачи Бостона, передается Бостон (с 'b' в нижнем регистре), и регистр устанавливается на False, что означает регистр не учитывается. После этого с помощью метода .where () отображаются только команды с именем команды «New Boston Celtics».

# импорт модуля панд

import pandas as pd

  
# чтение CSV-файла из URL

data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")

  
# перезаписать столбец с замененным значением возраста

data["Team"]= data["Team"].str.replace("boston", "New Boston", case = False)

  
# создание фильтра для столбца возраста
# где age = "Двадцать пять"

filter = data["Team"]=="New Boston Celtics"

  
# печать только отфильтрованных столбцов

data.where(filter).dropna()

Выход:
Как показано на выходном изображении, Бостон заменяется на Новый Бостон, независимо от того, какие строчные буквы переданы в параметрах. Это связано с тем, что для параметра case установлено значение False.

Рекомендуемые посты:

Python | Pandas Series.str.replace () для замены текста в серии

0.00 (0%) 0 votes