用法:
Series.str.split(pat=None, n=- 1, expand=False, *, regex=None)
圍繞給定的分隔符/分隔符拆分字符串。
在指定的分隔符字符串處從頭開始拆分係列/索引中的字符串。
- pat:str 或編譯的正則表達式,可選
要拆分的字符串或正則表達式。如果未指定,則在空格處拆分。
- n:int,默認 -1(全部)
限製輸出中的拆分數量。
None
, 0 和 -1 將被解釋為返回所有拆分。- expand:布爾值,默認為 False
將拆分的字符串展開為單獨的列。
如果
True
,返回 DataFrame/MultiIndex 擴展維度。如果
False
,則返回包含字符串列表的係列/索引。
- regex:布爾值,默認無
確定 passed-in 模式是否為正則表達式:
如果
True
,假設 passed-in 模式是正則表達式如果
False
,則將模式視為文字字符串。如果
None
和pat
長度為 1,則將pat
視為文字字符串。如果
None
和pat
長度不為 1,則將pat
視為正則表達式。如果
pat
是已編譯的正則表達式,則不能設置為 False
- Series、Index、DataFrame 或 MultiIndex
類型匹配調用者,除非
expand=True
(見注釋)。
- ValueError
如果
regex
為 False 並且pat
是已編譯的正則表達式
參數:
返回:
拋出:
注意:
n
關鍵字的處理取決於找到的拆分數量:如果發現拆分 >
n
,請先進行n
拆分如果發現拆分 n ,則進行所有拆分
如果對於某一行,找到的拆分數 n ,則追加
None
以填充到n
ifexpand=True
如果使用
expand=True
,Series 和 Index 調用者分別返回 DataFrame 和 MultiIndex 對象。使用帶有
pat
的regex=False
作為編譯的正則表達式會引發錯誤。例子:
>>> 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
(默認值)時,僅當len(pat) != 1
時,給定的pat
才會編譯為正則表達式。>>> 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
相關用法
- Python pandas.Series.str.startswith用法及代碼示例
- Python pandas.Series.str.strip用法及代碼示例
- Python pandas.Series.str.swapcase用法及代碼示例
- Python pandas.Series.str.slice用法及代碼示例
- Python pandas.Series.str.slice_replace用法及代碼示例
- Python pandas.Series.str.isdecimal用法及代碼示例
- Python pandas.Series.str.get用法及代碼示例
- Python pandas.Series.str.replace用法及代碼示例
- Python pandas.Series.str.endswith用法及代碼示例
- Python pandas.Series.str.isspace用法及代碼示例
- Python pandas.Series.str.isdigit用法及代碼示例
- Python pandas.Series.str.wrap用法及代碼示例
- Python pandas.Series.str.isalnum用法及代碼示例
- Python pandas.Series.str.zfill用法及代碼示例
- Python pandas.Series.str.partition用法及代碼示例
- Python pandas.Series.str.isnumeric用法及代碼示例
- Python pandas.Series.str.count用法及代碼示例
- Python pandas.Series.str.rpartition用法及代碼示例
- Python pandas.Series.str.removesuffix用法及代碼示例
- Python pandas.Series.str.rsplit用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.str.split。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。