cudf.core.column.string.StringMethods.rsplit#

StringMethods.rsplit(pat: str | None = None, n: int = -1, expand: bool = False, regex: bool | None = None) SeriesOrIndex[source]#

围绕给定的分隔符/定界符拆分字符串。

从末尾开始,在指定的分隔符字符串处拆分Series/Index中的字符串。类似于str.rsplit()

Parameters:
patstr, default ‘ ‘ (space)

要分割的字符串,目前还不支持正则表达式。

nint, default -1 (all)

限制输出中的分割数量。None、0 和 -1 都将被解释为“全部分割”。

expandbool, default False

将分割的字符串扩展为单独的列。

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

  • 如果 False,返回包含字符串列表的 Series/Index。

regexbool, default None

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

  • 如果 True,则假定传入的模式是一个正则表达式

  • 如果 False,将模式视为字面字符串。

  • 如果 pat 的长度为 1,则将 pat 视为字面字符串。

Returns:
Series, Index, DataFrame or MultiIndex

类型与调用者匹配,除非 expand=True(参见注释)。

另请参阅

split

围绕给定的分隔符/定界符拆分字符串。

str.split

用于分割的标准库版本。

str.rsplit

rsplit的标准库版本。

注释

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

  • 如果找到的分割数大于n,则只进行前n个分割

  • 如果找到的分割数 <= n,则进行所有分割

  • 如果对于某一行找到的分割数小于n,当expand=True时,追加None以填充到n。

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

示例

>>> import cudf
>>> s = cudf.Series(
...     [
...         "this is a regular sentence",
...         "https://docs.python.org/3/tutorial/index.html",
...         None
...     ]
... )
>>> s
0                       this is a regular sentence
1    https://docs.python.org/3/tutorial/index.html
2                                             <NA>
dtype: object

在默认设置中,字符串按空格分割。

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

如果没有n参数,rsplitsplit的输出是相同的。

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

n 参数可用于限制分隔符上的分割次数。split 和 rsplit 的输出是不同的。

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

当使用 expand=True 时,拆分后的元素将扩展为单独的列。如果存在 值,它将在拆分过程中传播到各个列中。

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

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

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