当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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