时间:2021-05-22
在处理数据的时候,很多时候会遇到批量替换的情况,如果一个一个去修改效率过低,也容易出错。replace()是很好的方法。
源数据
1、替换全部或者某一行
replace的基本结构是:df.replace(to_replace, value) 前面是需要替换的值,后面是替换后的值。
例如我们要将南岸改为城区:
将南岸改为城区
这样Python就会搜索整个DataFrame并将文档中所有的南岸替换成了城区(要注意这样的操作并没有改变文档的源数据,要改变源数据需要使用inplace = True)。
使用inplace = True更改源数据
由于南岸只有城市一列具有相同值,使用起来比较方便。
但是如果我们要改变表1Lon里的某个数据,而不改变Longitude的数据要怎么做呢?
改变指定的列的数据
所以只想替换部分数据的时候并且要写入源数据就需要指定inplace。
在上面的操作只改变了表1Lon的数据,其它列的数据并没有被替换,而且在替换后的结果不需要我们再和源数据进行合并操作,可以直接体现在源数据中。
2、替换指定的某个或指定的多个数值(用字典的形式)
只改变指定的值
这个很好理解,就是字典里的建作为原值,字典里的值作为替换的新值。
当然,我们也可是使用列表的形式进行替换:df.replace(['A','29.54'],['B',100])
用列表的形式进行替换
还有如果想要替换的新值是一样的话,我们还可以这样做:
替换的新值一样时
部分替换和替换某个值结合使用的话就可以替换单个列的数值:
替换单个列的数值
3、使用正则表达式替换
正则表达式很强大,能够让我们实现一次替换很多很多个不同的值:
源数据
正则表达式没有指定regex =True
正则表达式指定regex =True
使用正则表达式的时候记得后面加 regex=True参数。
有图中我们可以看到只要包含有大写的英文字母的数据都被替换了,如果我们要写入源数据还需要指定inpla = True。
指定列替换数据
当需要将缺失值替换掉的时候,我们可以考虑直接只用fillna(),功能更强大,这个前面已经有说过了。
在某些情况下,如果我们只需要某个数据的部分内容,我们该怎么操作呢?
比如要把变电站都改为transformer_substation,或者是把Latitude列的前面的ab改为AB:
指定列更改替换部分字符
指定列更改替换部分字符
需要注意的时更好指定列的时候,使用str.replace时不能使用inplace = True参数,因此需要改成赋值,赋值的时候不要忘了是列的赋值而不是整个表格的赋值。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在pandas中提供了利用映射关系来实现某些操作的函数,具体如下:replace()函数:替换元素;map()函数:新建一列;rename()函数:替换索引。一
C++中String替换指定字符串的实例详解C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,str
本文实例讲述了php使用str_replace替换多维数组的实现方法。分享给大家供大家参考,具体如下:在php中,如果使用str_replace替换数组中的字符
先给出结论:要替换的字符数量不多时,可以直接链式replace()方法进行替换,效率非常高;如果要替换的字符数量较多,则推荐在for循环中调用replace()
实际需求中,需要对某张表某字段里面的内容进行批量替换,普通的思考流程如下:SELECT出来str_replace替换UPDATE写入实际这样极其浪费资源以及消耗