當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pyspark Series.str.replace用法及代碼示例


本文簡要介紹 pyspark.pandas.Series.str.replace 的用法。

用法:

str.replace(pat: str, repl: Union[str, Callable[[str], str]], n: int = - 1, case: Optional[bool] = None, flags: int = 0, regex: bool = True) → ps.Series

將係列中出現的模式/正則表達式替換為其他字符串。相當於 str.replace()re.sub()

參數

patstr 或編譯的正則表達式

字符串可以是字符序列或正則表達式。

replstr 或可調用

替換字符串或可調用對象。可調用對象傳遞正則表達式匹配對象,並且必須返回要使用的替換字符串。請參閱re.sub()

nint,默認 -1(全部)

從一開始就更換的數量。

case布爾值,默認無

如果為 True,則區分大小寫(如果 pat 是字符串,則為默認值)。設置為 False 表示不區分大小寫。如果 pat 是已編譯的正則表達式,則無法設置。

flags: int, default 0 (no flags)

重新模塊標誌,例如重新忽略。如果 pat 是已編譯的正則表達式,則無法設置。

regex布爾值,默認 True

如果為 True,則假定 passed-in 模式是正則表達式。如果為 False,則將模式視為文字字符串。如果 pat 是編譯正則表達式或 repl 是可調用的,則不能設置為 False。

返回

係列對象

將所有匹配的 pat 替換為 repl 的字符串副本。

例子

當 pat 是一個字符串並且 regex 為 True(默認值)時,給定的 pat 被編譯為一個正則表達式。當 repl 是一個字符串時,它會像 re.sub() 一樣替換匹配的正則表達式模式。係列中的NaN 值更改為無:

>>> ps.Series(['foo', 'fuz', np.nan]).str.replace('f.', 'ba', regex=True)
0     bao
1     baz
2    None
dtype: object

當 pat 是字符串且正則表達式為 False 時,每個 pat 都會被替換為 repl,如 str.replace()

>>> ps.Series(['f.o', 'fuz', np.nan]).str.replace('f.', 'ba', regex=False)
0     bao
1     fuz
2    None
dtype: object

當 repl 是一個可調用對象時,它會使用 re.sub() 在每個 pat 上調用。可調用對象應該期望一個位置參數(一個正則表達式對象)並返回一個字符串。

反轉每個小寫字母單詞:

>>> repl = lambda m: m.group(0)[::-1]
>>> ps.Series(['foo 123', 'bar baz', np.nan]).str.replace(r'[a-z]+', repl)
0    oof 123
1    rab zab
2       None
dtype: object

使用正則表達式組(提取第二組和交換案例):

>>> pat = r"(?P<one>\w+) (?P<two>\w+) (?P<three>\w+)"
>>> repl = lambda m: m.group('two').swapcase()
>>> ps.Series(['One Two Three', 'Foo Bar Baz']).str.replace(pat, repl)
0    tWO
1    bAR
dtype: object

使用帶有標誌的編譯正則表達式:

>>> import re
>>> regex_pat = re.compile(r'FUZ', flags=re.IGNORECASE)
>>> ps.Series(['foo', 'fuz', np.nan]).str.replace(regex_pat, 'bar')
0     foo
1     bar
2    None
dtype: object

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.Series.str.replace。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。