pandas.Series.str.replace
-
Series.str.replace(pat, repl, n=-1, case=None, flags=0, regex=True)[source] -
Замена вхождений шаблона/регулярного выражения в Series/Index на другую строку. Эквивалентно
str.replace()илиre.sub().Параметры: pat : строка или скомпилированное регулярное выражение
Строка может быть последовательностью символов или регулярным выражением.
Введено в версии 0.20.0:
patтакже принимает скомпилированное регулярное выражение.repl : строка или вызываемая функция
Строка замены или вызываемая функция. Вызываемая функция получает объект соответствия регулярного выражения и должна вернуть строку замены. См.
re.sub().Введено в версии 0.20.0:
replтакже принимает вызываемую функцию.n : int, по умолчанию -1 (все)
Количество замен, которые необходимо выполнить с начала
case : boolean, по умолчанию None
- Если True, регистрозависимая (по умолчанию, если
patявляется строкой) - Установите в False для регистронезависимой замены
- Не может быть установлено, если
patявляется скомпилированным регулярным выражением
flags : int, по умолчанию 0 (нет флагов)
- Флаги модуля re, например re.IGNORECASE
- Не может быть установлено, если
patявляется скомпилированным регулярным выражением
regex : boolean, по умолчанию True
- Если True, предполагается, что переданный шаблон является регулярным выражением.
- Если False, шаблон обрабатывается как строка
- Не может быть установлено в False, если
patявляется скомпилированным регулярным выражением илиreplявляется вызываемой функцией.
Введено в версии 0.23.0.
Возвращает: -
replaced : Series/Index of objects
Возможные исключения: ValueError
- если
regexравно False иreplявляется вызываемой функцией илиpatявляется скомпилированным регулярным выражением - если
patявляется скомпилированным регулярным выражением иcaseилиflagsустановлены
Примечания
Когда
patявляется скомпилированным регулярным выражением, все флаги должны быть включены в скомпилированное регулярное выражение. Использованиеcase,flags, илиregex=Falseсо скомпилированным регулярным выражением вызовет ошибку.Примеры
Когда
patявляется строкой иregexравно True (по умолчанию), заданноеpatкомпилируется как регулярное выражение. Когдаreplявляется строкой, оно заменяет совпадающие шаблоны регулярных выражений как с помощьюre.sub(). Значение NaN в Series остаются неизменными:>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f.', 'ba', regex=True) 0 bao 1 baz 2 NaN dtype: objectКогда
patявляется строкой иregexравно False, каждоеpatзаменяется наreplкак с помощьюstr.replace():>>> pd.Series(['f.o', 'fuz', np.nan]).str.replace('f.', 'ba', regex=False) 0 bao 1 fuz 2 NaN dtype: objectКогда
replявляется вызываемой функцией, она вызывается для каждогоpatс использованиемre.sub(). Вызываемая функция должна принимать один позиционный аргумент (объект регулярного выражения) и возвращать строку.Для лучшего понимания:
>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f', repr) 0 <_sre.SRE_Match object; span=(0, 1), match='f'>oo 1 <_sre.SRE_Match object; span=(0, 1), match='f'>uz 2 NaN dtype: objectОбратить порядок всех слов в нижнем регистре и буквенного формата:
>>> repl = lambda m: m.group(0)[::-1] >>> pd.Series(['foo 123', 'bar baz', np.nan]).str.replace(r'[a-z]+', repl) 0 oof 123 1 rab zab 2 NaN dtype: object
Использование групп регулярных выражений (извлечение второй группы и изменение регистра):
>>> pat = r"(?P<one>\w+) (?P<two>\w+) (?P<three>\w+)" >>> repl = lambda m: m.group('two').swapcase() >>> pd.Series(['One Two Three', 'Foo Bar Baz']).str.replace(pat, repl) 0 tWO 1 bAR dtype: objectИспользование скомпилированного регулярного выражения с флагами
>>> regex_pat = re.compile(r'FUZ', flags=re.IGNORECASE) >>> pd.Series(['foo', 'fuz', np.nan]).str.replace(regex_pat, 'bar') 0 foo 1 bar 2 NaN dtype: object
- Если True, регистрозависимая (по умолчанию, если
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.Series.str.replace.html