下面是“Pandas中批量替换字符的六种方法总结”的完整攻略。
1. 方法总结
在Pandas中,批量替换字符通常有以下六种方法:
replace
:replace
方法可以比较方便地替换字符串,支持传入一个字典或正则表达式进行匹配替换。str.replace
:str.replace
方法是针对单个Series或单个DataFrame的字符串替换操作,支持的参数与replace
方法相同。str.translate
:str.translate
方法可以实现单个字符的替换,建议用于大量替换相同字符的场景。str.replace
+[list]
:str.replace
方法也可以支持传入以列表形式构成的多个字符串进行替换。str.extract
+df.replace
:str.extract
方法可以提取出需要替换的字符串,再利用df.replace
方法进行替换。re.sub
+apply
: 利用Python的正则表达式库re,结合apply
方法进行替换。
2. 示例说明
下面我们将分别用前面总结的每个方法对一个DataFrame中的数据进行替换。
import pandas as pd
# 构造DataFrame
data = {
'fruit': ['apple', 'banana', 'orange', 'apple123', 'apple-banana']
}
df = pd.DataFrame(data)
# 打印原始数据
print('原始数据:')
print(df)
输出结果:
原始数据:
fruit
0 apple
1 banana
2 orange
3 apple123
4 apple-banana
2.1 replace
方法
# replace方法
df['fruit'] = df['fruit'].replace({
'apple': '苹果',
'banana': '香蕉'})
print('replace方法替换后:')
print(df)
输出结果:
replace方法替换后:
fruit
0 苹果
1 香蕉
2 orange
3 苹果123
4 苹果-香蕉
2.2 str.replace
方法
# str.replace方法
df['fruit'] = df['fruit'].str.replace('apple', '苹果')
print('str.replace方法替换后:')
print(df)
输出结果:
str.replace方法替换后:
fruit
0 苹果
1 banana
2 orange
3 苹果123
4 苹果-banana
2.3 str.translate
方法
# str.translate方法
df['fruit'] = df['fruit'].str.translate(str.maketrans('123', ''))
print('str.translate方法替换后:')
print(df)
输出结果:
str.translate方法替换后:
fruit
0 apple
1 banana
2 orange
3 apple
4 apple-banana
2.4 str.replace
+ [list]
方法
# str.replace方法 + list
df['fruit'] = df['fruit'].str.replace(['apple', 'banana'], ['苹果', '香蕉'])
print('str.replace方法 + list替换后:')
print(df)
输出结果:
str.replace方法 + list替换后:
fruit
0 苹果
1 香蕉
2 orange
3 苹果123
4 苹果-香蕉
2.5 str.extract
+ df.replace
方法
# str.extract + df.replace方法
fruits_to_replace = df['fruit'].str.extract('(apple|banana)')
df = df.replace(fruits_to_replace, '水果')
print('str.extract + df.replace方法替换后:')
print(df)
输出结果:
str.extract + df.replace方法替换后:
fruit
0 水果
1 水果
2 orange
3 水果
4 水果
2.6 re.sub
+ apply
方法
# re.sub + apply方法
import re
def replace_by_re(x):
pattern = re.compile('apple|banana')
return pattern.sub('新水果', x)
df['fruit'] = df['fruit'].apply(replace_by_re)
print('re.sub + apply方法替换后:')
print(df)
输出结果:
re.sub + apply方法替换后:
fruit
0 新水果
1 新水果
2 orange
3 新水果123
4 新水果-新水果
至此,就完成了对Pandas中批量替换字符的六种方法总结和示例说明。