Pandas DataFrame 数据替换详解:replace 与 str.replace 实战

向北走
向北走
发布时间:2026-10-14 | 4人浏览过
原创

本文详细解析Pandas中replace()函数的多种用法,涵盖全表替换、指定列替换、字典与列表形式替换以及正则表达式匹配。重点讲解inplace参数的影响及str.replace在部分字符替换中的应用,帮助开发者高效完成数据清洗任务。

Pandas数据替换概述

在数据处理流程中,批量替换操作十分常见。若逐一手动修改,不仅效率低下,还极易引入人为错误。此时,利用Pandas提供的replace()方法成为更优解决方案。

源数据

基础替换:全表与指定行

1、替换全部或者某一行

replace()函数的基本语法结构为:df.replace(to_replace, value)。其中,to_replace参数指定需要被替换的原始值,value参数则指定替换后的新值。

例如,假设我们需要将数据中的“南岸”统一修改为“城区”:

将南岸改为城区

执行上述操作后,Python会遍历整个DataFrame,将所有出现的“南岸”替换为“城区”。需要注意的是,这种默认操作并不会直接修改原始数据源。若需永久保存更改,必须显式设置inplace=True参数。

使用inplace = True更改源数据

在上述示例中,由于“南岸”仅出现在“城市”这一列中,因此操作较为直观且便捷。

然而,如果我们需要修改表1中“Lon”列的特定数据,同时保持“Longitude”列的数据不变,应如何处理呢?

改变指定的列的数据

因此,当仅需替换部分数据并希望直接写入源数据时,必须明确指定inplace参数及目标列。

通过上述操作,仅“表1Lon”列的数据发生更改,其他列数据保持原样。此外,替换结果直接反映在源数据中,无需额外执行合并操作。

进阶替换:字典与列表模式

2、替换指定的某个或指定的多个数值(用字典的形式)

只改变指定的值

这一逻辑十分直观:字典的键(key)作为原始值,字典的值(value)作为替换后的新值。

此外,我们也可以采用列表形式进行批量替换:df.replace(['A','29.54'],['B',100])。

用列表的形式进行替换

若希望将多个不同的原始值替换为相同的新值,还可以采用如下写法:

替换的新值一样时

将部分替换与特定值替换相结合,即可实现针对单个列内特定数值的精准替换:

替换单个列的数值

高级替换:正则表达式应用

3、使用正则表达式替换

正则表达式功能强大,能够协助我们一次性替换大量不同的值:

源数据

正则表达式没有指定regex =True

正则表达式指定regex =True

在使用正则表达式进行替换时,务必在参数中追加regex=True,以告知Pandas启用正则匹配模式。

从图中可见,所有包含大写英文字母的数据均被成功替换。若需将更改写入源数据,同样需要指定inplace=True参数(原文中拼写为inpla,此处修正为正确参数名)。

指定列替换数据

当面临将缺失值(NaN)进行替换的需求时,建议直接使用fillna()方法,其功能更为强大且专为此场景设计,前文已有相关介绍。

部分字符替换与注意事项

在某些特定场景下,若我们仅需提取或修改数据的部分内容,应如何操作?

例如,需要将所有的“变电站”替换为“transformer_substation”,或者将“Latitude”列中前缀的“ab”修改为“AB”:

指定列更改替换部分字符

指定列更改替换部分字符

需要特别注意的是,当针对特定列进行部分字符替换时,使用str.replace()方法不支持inplace=True参数。因此,必须采用赋值操作,且务必明确是对列进行赋值,而非对整个表格进行赋值。

以上即为本文的全部内容,希望对各位的学习有所帮助,也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表