用法:
Series.str.replace(pat, repl, n=- 1, case=None, flags=0, regex=None)
替換係列/索引中每次出現的模式/正則表達式。
等效於
str.replace()
或re.sub()
,具體取決於正則表達式值。- pat:str 或編譯的正則表達式
字符串可以是字符序列或正則表達式。
- repl:str 或可調用
替換字符串或可調用對象。可調用對象傳遞正則表達式匹配對象,並且必須返回要使用的替換字符串。見
re.sub()
。- n:int,默認 -1(全部)
從一開始就更換的數量。
- case:布爾值,默認無
確定替換是否區分大小寫:
如果為 True,則區分大小寫(如果
pat
是字符串,則默認為)設置為 False 不區分大小寫
如果
pat
是已編譯的正則表達式,則無法設置。
- flags:int,默認 0(無標誌)
正則表達式模塊標誌,例如重新忽略。如果
pat
是已編譯的正則表達式,則無法設置。- regex:布爾值,默認為真
確定 passed-in 模式是否為正則表達式:
如果為 True,則假定 passed-in 模式是正則表達式。
如果為 False,則將模式視為文字字符串
如果
pat
是已編譯的正則表達式或repl
是可調用的,則不能設置為 False。
- 對象的係列或索引
對象的副本,其中所有匹配的
pat
替換為repl
。
- ValueError
如果
regex
為 False 並且repl
是可調用的或pat
是已編譯的正則表達式如果
pat
是已編譯的正則表達式並且設置了case
或flags
參數:
返回:
拋出:
注意:
當
pat
是已編譯的正則表達式時,所有標誌都應包含在已編譯的正則表達式中。將case
、flags
或regex=False
與已編譯的正則表達式一起使用將引發錯誤。例子:
當
pat
是字符串且regex
為 True(默認值)時,給定的pat
將編譯為正則表達式。當repl
是字符串時,它會將匹配的正則表達式模式替換為re.sub()
。係列中的 NaN 值保持原樣:>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f.', 'ba', regex=True) 0 bao 1 baz 2 NaN dtype:object
當
pat
是字符串且regex
為 False 時,每個pat
都替換為repl
與str.replace()
一樣:>>> pd.Series(['f.o', 'fuz', np.nan]).str.replace('f.', 'ba', regex=False) 0 bao 1 fuz 2 NaN dtype:object
當
repl
是可調用對象時,使用re.sub()
在每個pat
上調用它。可調用對象應該期望一個位置參數(一個正則表達式對象)並返回一個字符串。要得到這個想法:
>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f', repr, regex=True) 0 <re.Match object; span=(0, 1), match='f'>oo 1 <re.Match object; span=(0, 1), match='f'>uz 2 NaN dtype:object
反轉每個小寫字母單詞:
>>> repl = lambda m:m.group(0)[::-1] >>> ser = pd.Series(['foo 123', 'bar baz', np.nan]) >>> ser.str.replace(r'[a-z]+', repl, regex=True) 0 oof 123 1 rab zab 2 NaN dtype:object
使用正則表達式組(提取第二組和交換案例):
>>> pat = r"(?P<one>\w+) (?P<two>\w+) (?P<three>\w+)" >>> repl = lambda m:m.group('two').swapcase() >>> ser = pd.Series(['One Two Three', 'Foo Bar Baz']) >>> ser.str.replace(pat, repl, regex=True) 0 tWO 1 bAR dtype:object
使用帶有標誌的編譯正則表達式
>>> import re >>> regex_pat = re.compile(r'FUZ', flags=re.IGNORECASE) >>> pd.Series(['foo', 'fuz', np.nan]).str.replace(regex_pat, 'bar', regex=True) 0 foo 1 bar 2 NaN dtype:object
相關用法
- Python pandas.Series.str.repeat用法及代碼示例
- Python pandas.Series.str.removesuffix用法及代碼示例
- Python pandas.Series.str.removeprefix用法及代碼示例
- Python pandas.Series.str.rpartition用法及代碼示例
- Python pandas.Series.str.rsplit用法及代碼示例
- Python pandas.Series.str.rstrip用法及代碼示例
- Python pandas.Series.str.isdecimal用法及代碼示例
- Python pandas.Series.str.get用法及代碼示例
- 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.startswith用法及代碼示例
- Python pandas.Series.str.count用法及代碼示例
- Python pandas.Series.str.strip用法及代碼示例
- Python pandas.Series.str.islower用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.str.replace。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。