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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。