Pandas批量替换字符的六种方法详解
本文总结了在Pandas中批量替换字符的六种常用方法,包括map、replace、apply等函数的具体应用。通过实际代码示例,详细演示了如何将编码列批量转换为特定文本,帮助开发者高效完成数据清洗任务。
一、前言
近期,在Python技术交流群中,一位名为【dcpeng】的开发者提出了一个关于Pandas数据处理的问题。为了帮助更多学习者掌握相关技巧,现将该案例整理分享,供读者共同探讨学习。
具体需求是:处理一列包含1、2、3、4数值的编码数据,要求将数值1批量替换为“开心”,数值2批量替换为“悲伤”,依此类推,实现字符的批量映射替换。
二、解决过程
该问题的核心限制在于必须使用Pandas库进行处理。针对这一需求,存在多种可行的实现路径。以下将逐一介绍这些方法,旨在为读者提供多样化的解决方案参考。

首先,我们需要生成用于演示的源数据。具体的数据生成代码如下:
df = pd.DataFrame({'col1': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]})
df
方法一
第一种实现方式如下代码所示:
df['col2'] = df['col1'].map({1:"开心", 2:"悲伤", 3:"难过", 4:"泪目"})
df
运行上述代码后的结果如下图所示:

方法二
此方法参考了才哥的文章思路,具体实现代码如下:
def getValue(s):
if s==1:
return '开心'
elif s==2:
return '悲伤'
elif s==3:
return '难过'
elif s==4:
return '泪目'
df['col3'] = df['col1'].apply(getValue)
df
运行结果如下图所示:

方法三
【冫马讠成】大佬提供了一种思路,利用replace方法来实现替换操作。

具体代码如下:
df['col4'] = df['col1'].replace(1, '开心').replace(2, '悲伤').replace(3, '难过').replace(4, '泪目')
df
执行后得到的结果如下所示:

方法四
该方法基于apply()函数进行实现,具体代码如下:
def get_value(s):
dict = {1:"开心", 2:"悲伤", 3:"难过", 4:"泪目"}
return dict[s]
df['col5'] = df['col1'].apply(get_value)
df
运行结果如下图所示:

方法五
【沈复】大佬提供了另一种思路及对应代码,如下图所示:

此方法基于map()函数进行实现,具体代码如下:
def get_value(s):
dict = {1:"开心", 2:"悲伤", 3:"难过", 4:"泪目"}
return dict[s]
df['col5'] = df['col1'].map(get_value)
df
运行结果如下图所示:

方法六
这里【月神】仍然使用replace方法进行实现,但其代码写法更为精简。

具体代码如下:
df['col7'] = df['col1'].replace([1, 2, 3, 4], ['开心', '悲伤', '难过', '泪目'])
df
【月神】特别提醒:此方法为全匹配模式,请勿添加regex=True参数,否则可能导致非预期结果。
运行结果如下图所示:

三、总结
本文基于粉丝提出的具体提问,针对包含1、2、3、4编码的列数据,详细阐述了将其批量替换为“开心”、“悲伤”等字符的六种Pandas处理方法。通过具体的代码说明和运行演示,成功解决了该粉丝遇到的数据替换难题。
以上即为Pandas中批量替换字符的六种方法总结的详细内容。如需了解更多关于Pandas字符替换的资料,请关注本站其他相关文章。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













