Python学习笔记:replace方法替换字符

一、字符串替换

replace() 方法用于替换字符串。语法为:

string.replace(oldvalue, newvalue, count)
  • oldvalue -- 待替换字符串
  • newvalue -- 替换字符串
  • count -- 指定次数 默认所有
# 普通用法
txt = "I like bananas"
x = txt.replace("bananas", "apple")
print(x)
# I like apple

# 全部替换
txt = "one one was a race horse, two two was one too."
x = txt.replace("one", "three")
print(x)
# three three was a race horse, two two was three too.

# 指定替换次数
txt = "one one was a race horse, two two was one too."
x = txt.replace("one", "three", 2)
print(x)
# three three was a race horse, two two was one too.

二、pd.replace替换

pd.replace 实现批量替换,处理数据。语法为:

df.replace(to_replace, value)

1.普通替换

  • 替换数据并修改原始数据
import pandas as pd
import numpy as np
df = pd.DataFrame({"a":['小李','小白','大黄'],
                  "b":[1,2,3],
                  "c":[4,5,6],
                  "d":["A","A","BB"]})
df
'''
	a	b	c	d
0	小李	1	4	A
1	小白	2	5	A
2	大黄	3	6	BB
'''

# 替换(未修改源数据)
df.replace("小白", "小黑")
'''

a	b	c	d
0	小李	1	4	A
1	小黑	2	5	A
2	大黄	3	6	BB
'''

# 替换并修改源数据
df.replace("小白", "小黑", inplace=True)
  • 替换某列数据
df['a'].replace("小黑", "小X", inplace=True)
  • 利用字典的形式替换多个数值

字典中的键作为原始值,字典里的值作为替换后的值。

df.replace({'A':'B', 1:100})
'''
	a	b	c	d
0	小李	100	4	B
1	小X	2	5	B
2	大黄	3	6	BB
'''
  • 利用列表的形式替换
df.replace(['A',1], ['B',100])
'''

a	b	c	d
0	小李	100	4	B
1	小X	2	5	B
2	大黄	3	6	BB
'''

df.replace(['A',1], 1000) # 替换后值一致
  • 指定列替换部分内容
df['a'] = df['a'].str.replace('小', '巨')
print(df)
'''
    a  b  c   d
0  巨李  1  4   A
1  巨X  2  5   A
2  大黄  3  6  BB
'''

使用 str.replace 时不能使用 inplace=True 参数,因此需要改成赋值。

2.正则表达式替换

正则表达式很强大,可以实现一次替换多个不同的值。

df.replace('[A-Z]', '厉害', regex=True)
# 必须指定参数 regex=True

缺失值替换时考虑 fillna() 进行填充,功能更加强大,可实现前后填充、近邻填充、插值填充等。

参考链接:Python 字符串 replace() 方法

参考链接:python replace 用法

posted @ 2021-09-05 21:11  Hider1214  阅读(3450)  评论(0编辑  收藏  举报