Spec-Zone.ru › pandas 0.25

pandas.Series.str.rsplit

Series.str.rsplit(self, pat=None, n=-1, expand=False) [source]

Разделение строк вокруг заданного разделителя/делимитера.

Разделяет строку в Series/Index с конца по указанному разделителю. Эквивалентно str.rsplit().

Параметры:
pat : str, optional

Строка или регулярное выражение для разделения. Если не указано, разделение происходит по пробелам.

n : int, default -1 (all)

Предельное количество разделений в выходных данных. None, 0 и -1 будут интерпретированы как возврат всех разделений.

expand : bool, default False

Расширить разделенные строки в отдельные столбцы.

  • Если True, возвращается DataFrame/MultiIndex, расширяющий размерность.
  • Если False, возвращается Series/Index, содержащий списки строк.
Возвращает:
Series, Index, DataFrame или MultiIndex

Тип соответствует вызывающему элементу, если expand=True (см. Примечания).

См. также

Series.str.split
Разделение строк вокруг заданного разделителя/делимитера.
Series.str.rsplit
Разделяет строку вокруг заданного разделителя/делимитера, начиная с правого края.
Series.str.join
Объединение списков, содержащихся как элементы в Series/Index, с указанным разделителем.
str.split
Стандартная библиотечная версия для split.
str.rsplit
Стандартная библиотечная версия для rsplit.

Примечания

Обработка параметра n зависит от количества найденных разделений:

  • Если найденных разделений > n, выполнить только первые n разделения.
  • Если найденных разделений <= n, выполнить все разделения.
  • Если для определенной строки количество найденных разделений < n, добавить None для заполнения до n если expand=True

Если используется expand=True, вызывающие элементы Series и Index возвращают объекты DataFrame и MultiIndex соответственно.

Примеры

>>> s = pd.Series(["this is a regular sentence",
...                "https://docs.python.org/3/tutorial/index.html",
...                np.nan])
0                       this is a regular sentence
1    https://docs.python.org/3/tutorial/index.html
2                                              NaN
dtype: object

В стандартных настройках строка разделяется по пробелам.

>>> s.str.split()
0                   [this, is, a, regular, sentence]
1    [https://docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object

Без параметра n, результаты rsplit и split идентичны.

>>> s.str.rsplit()
0                   [this, is, a, regular, sentence]
1    [https://docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object

Параметр n может использоваться для ограничения количества разделений по разделителю. Результаты split и rsplit отличаются.

>>> s.str.split(n=2)
0                     [this, is, a regular sentence]
1    [https://docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object
>>> s.str.rsplit(n=2)
0                     [this is a, regular, sentence]
1    [https://docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object

Параметр pat может использоваться для разделения по другим символам.

>>> s.str.split(pat = "/")
0                         [this is a regular sentence]
1    [https:, , docs.python.org, 3, tutorial, index...
2                                                  NaN
dtype: object

При использовании expand=True, элементы разделения будут расширены в отдельные столбцы. Если присутствует NaN, он распространяется по всем столбцам во время разделения.

>>> s.str.split(expand=True)
                                               0     1     2        3
0                                           this    is     a  regular
1  https://docs.python.org/3/tutorial/index.html  None  None     None
2                                            NaN   NaN   NaN      NaN \
             4
0     sentence
1         None
2          NaN

Для несколько более сложных случаев, таких как разделение имени html-документа из url, можно использовать комбинацию параметров.

>>> s.str.rsplit("/", n=1, expand=True)
                                    0           1
0          this is a regular sentence        None
1  https://docs.python.org/3/tutorial  index.html
2                                 NaN         NaN

Не забывайте экранировать специальные символы при явном использовании регулярных выражений.

>>> s = pd.Series(["1+1=2"])
>>> s.str.split(r"\+|=", expand=True)
     0    1    2
0    1    1    2

© 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.rsplit.html

Spec-Zone.ru

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