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


Python Pandas Series str replace方法用法及代码示例


Pandas Series str.replace(~) 方法将 Series 中每个字符串的子字符串替换为指定值。此操作未就地完成,这意味着返回一个新系列,并且原始系列保持不变。

参数

1.pat | stringregex

要替换的子字符串。由于regex=True 默认情况下,pat 将被视为正则表达式。

2. repl | stringcallable

要替换 pat 的值。如果传递可调用对象,则它将采用匹配的正则表达式模式作为参数,并返回替换匹配项的字符串。

3. n | int | optional

进行的最大替换次数(含)。默认情况下,替换次数没有限制。

4. case | booleanNone | optional

匹配是否区分大小写:

说明

True

匹配区分大小写。

False

匹配不区分大小写。

None

使用正则表达式的情况。

默认情况下,case=None(因为默认情况下是regex=True)。请注意,如果 pat 是已编译的正则表达式,则无法设置 case

5. flags | int | optional

标准正则表达式模块中找到的标志(例如 re.IGNORECASE )。默认情况下,flags=0 。请注意,如果pat 是已编译的正则表达式,则无法设置flags

6. regex | boolean | optional

pat 是否被视为正则表达式。默认情况下,regex=True

返回值

带有替换子字符串的新 Series

例子

基本用法

要将系列中每个字符串的子字符串 "A" 替换为 "c"

s = pd.Series(["aA", "bA", "Ac"])
s.str.replace("A", "c")



0    ac
1    bc
2    cc
dtype: object

使用正则表达式

默认情况下, regex=True ,这意味着您可以直接传入正则表达式,如下所示:

s = pd.Series(["aA", "bA", "Ac"])
s.str.replace(".*A$", "c")   # regex=True



0     c
1     c
2    Ac
dtype: object

在这里,我们替换以 A 结尾的子字符串。

使用编译的正则表达式

要使用已编译的正则表达式而不是字符串形式的正则表达式:

import re
s = pd.Series(["aA", "bA", "Ac"])
my_regex = re.compile("a", flags=re.IGNORECASE)
s.str.replace(my_regex, "D")



0    DD
1    bD
2    Dc
dtype: object

传入可调用的 repl

传递给 repl 的函数有一个参数 - 捕获匹配的正则表达式对象。此函数必须返回一个将替换匹配项的字符串。

例如,考虑以下情况:

s = pd.Series(["aA", "bA", "Ac"])
def foo(my_regex):
    match = my_regex.group(0)
 return match.upper()
s.str.replace(".*A$", foo)



0    AA
1    BA
2    Ac
dtype: object

在这里,我们将以大写形式替换每个以 A 结尾的字符串。澄清一下,在这种情况下 foo 被调用两次,如果我们要打印 match 的值,我们将看到以下内容:

aA
bA

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas Series str | replace method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。