pandas.Series.str.split
-
Series.str.split(self, pat=None, n=-1, expand=False)[source] -
Разделение строк по заданному разделителю.
Разделяет строки в Series/Index с начала по указанному разделителю. Эквивалентно
str.split().Параметры: -
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.split.html