pandas.Series.str.split
-
Series.str.split(pat=None, n=-1, expand=False)[source] -
Разделение строк по заданному разделителю/делителю.
Разделение каждой строки в значениях вызываемого объекта по заданному шаблону, распространяя значения NaN. Эквивалентно
str.split().Параметры: pat : str, необязательно
Строка или регулярное выражение для разделения. Если не указано, разделение происходит по пробелам.
n : int, по умолчанию -1 (все)
Ограничение числа разделений в выходных данных.
None, 0 и -1 будут интерпретированы как возврат всех разделений.expand : bool, по умолчанию False
Развернуть разделенные строки в отдельные столбцы.
- Если
True, возвращается DataFrame/MultiIndex, расширяющий размерность. - Если
False, возвращается Series/Index, содержащий списки строк.
Возвращаемое значение: Series, Index, DataFrame или MultiIndex
Тип соответствует вызываемому объекту, за исключением
expand=True(см. Примечания).См. также
-
str.split - Стандартная библиотечная версия этого метода.
-
Series.str.get_dummies - Разделение каждой строки на фиктивные переменные.
-
Series.str.partition - Разделение строки по разделителю, возвращение компонентов до, разделителя и после.
Примечания
Обработка параметра
nзависит от числа найденных разделений:- Если найденных разделений >
n, сделать только первыеnразделения - Если найденных разделений ≤
n, сделать все разделения - Если для определенной строки количество найденных разделений <
n, добавитьNoneдля дополнения доnеслиexpand=True
Если используется
expand=True, Series и Index вызываемые объекты возвращают DataFrame и MultiIndex объекты соответственно.Примеры
>>> s = pd.Series(["this is good text", "but this is even better"])
По умолчанию, split вернет объект того же размера, содержащий списки, содержащие разделенные элементы.
>>> s.str.split() 0 [this, is, good, text] 1 [but, this, is, even, better] dtype: object >>> s.str.split("random") 0 [this is good text] 1 [but this is even better] dtype: objectПри использовании
expand=True, разделенные элементы будут развернуты в отдельные столбцы.Для объекта Series тип возвращаемых данных — DataFrame.
>>> s.str.split(expand=True) 0 1 2 3 4 0 this is good text None 1 but this is even better >>> s.str.split(" is ", expand=True) 0 1 0 this good text 1 but this even betterДля объекта Index тип возвращаемых данных — MultiIndex.
>>> i = pd.Index(["ba 100 001", "ba 101 002", "ba 102 003"]) >>> i.str.split(expand=True) MultiIndex(levels=[['ba'], ['100', '101', '102'], ['001', '002', '003']], labels=[[0, 0, 0], [0, 1, 2], [0, 1, 2]])Параметр
nможет использоваться для ограничения числа разделений в выходных данных.>>> s.str.split("is", n=1) 0 [th, is good text] 1 [but th, is even better] dtype: object >>> s.str.split("is", n=1, expand=True) 0 1 0 th is good text 1 but th is even betterЕсли присутствует NaN, он распространяется по всем столбцам во время разделения.
>>> s = pd.Series(["this is good text", "but this is even better", np.nan]) >>> s.str.split(n=3, expand=True) 0 1 2 3 0 this is good text 1 but this is even better 2 NaN NaN NaN NaN - Если
© 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.split.html