Spec-Zone.ru › pandas 0.23

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

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API