用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。