pandas.Series.str.split # 系列.str。split ( pat = None , * , n = -1 , Expand = False , regex = None ) [来源] # 围绕给定的分隔符/定界符分割字符串。 在指定的分隔符字符串处从头开始拆分系列/索引中的字符串。 参数: pat str 或编译的正则表达式,可选要分割的字符串或正则表达式。如果未指定,则按空格分割。 n int,默认-1(全部)限制输出中的拆分数量。 None、0 和 -1 将被解释为返回所有拆分。 展开bool,默认 False将拆分的字符串展开为单独的列。 如果True,则返回 DataFrame/MultiIndex 扩展维度。 如果False,则返回包含字符串列表的系列/索引。 正则表达式bool,默认 None确定传入的模式是否是正则表达式: 如果True,假设传入的模式是正则表达式 如果False,则将模式视为文字字符串。 如果Nonepat长度为 1,则将pat视为文字字符串。 如果Nonepat长度不为 1,则将pat视为正则表达式。 如果pat是已编译的正则表达式,则不能设置为 False 1.4.0 版本中的新增功能。 返回: 系列、索引、DataFrame 或多索引类型与调用者匹配,除非expand=True(参见注释)。 加薪: 值错误 如果regex为 False 并且pat是已编译的正则表达式 也可以看看 Series.str.split围绕给定的分隔符/定界符分割字符串。 Series.str.rsplit从右侧开始围绕给定的分隔符/分隔符分割字符串。 Series.str.join使用传递的分隔符连接作为系列/索引中的元素包含的列表。 str.split用于拆分的标准库版本。 str.rsplitrsplit 的标准库版本。 笔记 n关键字的处理取决于找到的拆分数量: 如果发现分割 > n,则仅进行前n分割 如果发现 splits <= n,则进行所有 splits 如果对于某一行,找到的分割数 < n,则附加None来填充最多n ifexpand=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参数, 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 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=True,pat被解释为正则表达式 >>> 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=False,pat被解释为字符串本身 >>> s.str.split(r"\.jpg", regex=False, expand=True) 0 0 foojpgbar.jpg