pandas.Series.str.replace
-
Series.str.replace(self, pat, repl, n=-1, case=None, flags=0, regex=True)[source] -
Замена вхождений шаблона/регулярного выражения в Series/Index на другую строку. Эквивалентно
str.replace()илиre.sub().Параметры: -
pat : str or compiled regex -
Строка может быть последовательностью символов или регулярным выражением.
Новое в версии 0.20.0:
patтакже принимает скомпилированное регулярное выражение. -
repl : str or callable -
Строка замены или вызываемая функция. Вызываемая функция получает объект совпадения регулярного выражения и должна возвращать строку замены. См.
re.sub().Новое в версии 0.20.0:
replтакже принимает вызываемую функцию. -
n : int, default -1 (all) -
Число замен, которые нужно выполнить с начала.
-
case : bool, default None -
- Если True, чувствителен к регистру (по умолчанию, если
pat- строка) - Установить в False для выполнения замены без учета регистра
- Не может быть установлено, если
pat- скомпилированное регулярное выражение
- Если True, чувствителен к регистру (по умолчанию, если
-
flags : int, default 0 (no flags) -
- Флаги модуля re, например re.IGNORECASE
- Не может быть установлено, если
pat- скомпилированное регулярное выражение
-
regex : bool, default True -
- Если True, предполагает, что переданный шаблон является регулярным выражением.
- Если False, обрабатывает шаблон как строку.
- Не может быть установлено в False, если
pat- скомпилированное регулярное выражение илиrepl- вызываемая функция.
Новое в версии 0.23.0.
Возвращает: - Series или Index объекта
-
Копия объекта со всеми совпадениями
patзаменёнными наrepl.
Возможные исключения: - 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Использование скомпилированного регулярного выражения с флагами
>>> import re >>> 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
-
© 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.25.0/reference/api/pandas.Series.str.replace.html