pandas.Series.str.split#

Series.str.split(pat=None, n=- 1, expand=False, *, regex=None)[源代码]#

在给定的分隔符/分隔符周围拆分字符串。

在指定的分隔符字符串处,从开头拆分序列/索引中的字符串。

参数
pat字符串或已编译的正则表达式,可选

要拆分的字符串或正则表达式。如果未指定,则使用空格拆分。

n整型,默认为-1(全部)

限制输出中的拆分数量。 None 、0和-1将被解释为返回所有拆分。

expand布尔值,默认为False

将拆分的字符串展开为单独的列。

  • 如果 True ,返回DataFrame/MultiIndex展开维度。

  • 如果 False ,返回系列/索引,包含字符串列表。

regex布尔默认为无

确定传入的模式是否为正则表达式:

  • 如果 True 假设传入的模式是正则表达式

  • 如果 False 将该模式视为文字字符串。

  • 如果 Nonepat 长度为1,请客 pat 作为文字字符串。

  • 如果 Nonepat 长度不是1,请处理 pat 作为正则表达式。

  • 在以下情况下不能设置为False pat 是已编译的正则表达式

1.4.0 新版功能.

退货
系列、索引、数据帧或多索引

类型匹配调用方,除非 expand=True (请参阅注释)。

加薪
ValueError
  • 如果 regex 是假的,而且 pat 是已编译的正则表达式

参见

Series.str.split

在给定的分隔符/分隔符周围拆分字符串。

Series.str.rsplit

从右开始,围绕给定的分隔符/分隔符拆分字符串。

Series.str.join

使用传递的分隔符联接作为系列/索引中的元素包含的列表。

str.split

Split的标准库版本。

str.rsplit

Rplit的标准库版本。

注意事项

的处理方式 n 关键字取决于找到的拆分数量:

  • 如果找到拆分> n ,先做出决定 n 仅拆分

  • 如果找到拆分<= n ,进行所有拆分

  • 如果对于某一行,找到的拆分数量< n ,追加 None 最高可填充到 n 如果 expand=True

如果使用 expand=True 、Series和Index调用方分别返回DataFrame和MultiIndex对象。

使用 regex=False 使用一个 pat 因为编译后的正则表达式将引发错误。

示例

>>> s = pd.Series(
...     [
...         "this is a regular sentence",
...         "https://docs.python.org/3/tutorial/index.html",
...         np.nan
...     ]
... )
>>> s
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 参数,则输出为 rsplitsplit 是完全相同的。

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

这个 n 参数可用于限制分隔符上的拆分数量。的产出 splitrsplit 是不同的。

>>> 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         4
0                                           this    is     a  regular  sentence
1  https://docs.python.org/3/tutorial/index.html  None  None     None      None
2                                            NaN   NaN   NaN      NaN       NaN

对于稍微复杂一些的用例,如从URL中拆分html文档名,可以使用参数设置的组合。

>>> 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(["foo and bar plus baz"])
>>> s.str.split(r"and|plus", expand=True)
    0   1   2
0 foo bar baz

正则表达式可用于处理URL或文件名。什么时候 pat 是一个字符串,并且 regex=None (默认)、给定的 pat 仅在以下情况下编译为正则表达式 len(pat) != 1

>>> s = pd.Series(['foojpgbar.jpg'])
>>> s.str.split(r".", expand=True)
           0    1
0  foojpgbar  jpg
>>> s.str.split(r"\.jpg", expand=True)
           0 1
0  foojpgbar

什么时候 regex=Truepat 被解释为正则表达式

>>> s.str.split(r"\.jpg", regex=True, expand=True)
           0 1
0  foojpgbar

编译后的正则表达式可以作为 pat

>>> import re
>>> s.str.split(re.compile(r"\.jpg"), expand=True)
           0 1
0  foojpgbar

什么时候 regex=Falsepat 被解释为字符串本身

>>> s.str.split(r"\.jpg", regex=False, expand=True)
               0
0  foojpgbar.jpg