pandas.Series.str.replace
-
Series.str.replace(pat, repl, n=-1, case=None, flags=0)[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является скомпилированным регулярным выражением
Возвращает: replaced : Series/Index объектов
Примечания
Когда
patявляется скомпилированным регулярным выражением, все флаги должны быть включены в скомпилированное регулярное выражение. Использованиеcaseилиflagsсо скомпилированным регулярным выражением приведет к ошибке.Примеры
Когда
replявляется строкой, каждоеpatзаменяется так же, как сstr.replace(). Значение NaN в Series остается неизменным.>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f', 'b') 0 boo 1 buz 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.21.1/generated/pandas.Series.str.replace.html