Python之replace()方法失效
2021/8/9 22:06:24
本文主要是介绍Python之replace()方法失效,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.背景
Titanic存活率预测案例:
# 读取数据 df_train = pd.read_csv("./data/train.csv") df_train.head()
OUT:
乘客姓名重复度太低,不适合直接使用。而姓名中包含Mr. Mrs. Dr.等具有文化特征的信息,可将之抽取出来:
# 定义一个抽取方法 def GetMiddleStr(content): startStr = ',' endStr = '.' startIndex = content.index(startStr) if startIndex>=0: startIndex += len(startStr) endIndex = content.index(endStr) content = content[startIndex:endIndex] return content df_train["Name"] = df_train["Name"].apply(GetMiddleStr) df_train['Name'].unique()
OUT:
array([' Mr', ' Mrs', ' Miss', ' Master', ' Don', ' Rev', ' Dr', ' Mme', ' Ms', ' Major', ' Lady', ' Sir', ' Mlle', ' Col', ' Capt', ' the Countess', ' Jonkheer'], dtype=object)
通过replace()方法将上面得到的头衔缩小类别。
2.BUG复现
df_train["Name"] = df_train["Name"].replace(['Lady','the Countess','Capt','Col',\ 'Don','Dr','Major','Rev','Sir',\ 'Jonkheer','Dona'],'Rare') df_train["Name"] = df_train["Name"].replace('Mlle','Miss') df_train["Name"] = df_train["Name"].replace('Ms','Miss') df_train["Name"] = df_train["Name"].replace('Mme','Mrs') df_train['Name'].unique()
OUT:
array([' Mr', ' Mrs', ' Miss', ' Master', ' Don', ' Rev', ' Dr', ' Mme', ' Ms', ' Major', ' Lady', ' Sir', ' Mlle', ' Col', ' Capt', ' the Countess', ' Jonkheer'], dtype=object)
3.原因
在Python中字符串是immutable对象,是不可变对象。所以string使用replace需要重新赋值,生成一个新的对象。(即replace函数返回一个新值,不改变原来str的值,所以输出的仍为原结果)
4.解决
不能直接调用replace(),需要转为字符串,才可以对元素的部分内容进行修改
df_train["Name"] = df_train["Name"].str.replace('Mlle','Miss')
但是此方法代码中传入replace“被替换的值”不支持传入列表,仅支持传入单个字符串
如,以下代码将会报错:
df_train["Name"] = df_train["Name"].str.replace(['Lady','the Countess','Capt','Col',\ 'Don','Dr','Major','Rev','Sir',\ 'Jonkheer','Dona'],'Rare')
这篇关于Python之replace()方法失效的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享