盘点6个Pandas中批量替换字符的方法

大家好,我是Python进阶者。

一、前言

前几天在Python最强王者群有个叫【dcpeng】的粉丝问了一个关于Pandas中的问题,这里拿出来给大家分享下,一起学习。

想问一下我有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换呢?

二、解决过程

思路挺简单,限定Pandas处理,想到的方法有很多,这里拿出来给大家分享,希望对大家的学习有帮助。

image.png

下面这个是生成源数据的代码:

df = pd.DataFrame({'col1': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]})

方法一:【月神】解答

代码如下所示:

df['col2'] = df['col1'].map({1:"开心", 2:"悲伤", 3:"难过", 4:"泪目"})

运行结果如下图所示:

image.png

方法二:【dcpeng】解答

这个方法是参考才哥的文章写出来的,代码如下所示:

1def getValue(s): 2 if s==1: 3 return '开心' 4 elif s==2: 5 return '悲伤' 6 elif s==3: 7 return '难过' 8 elif s==4: 9 return '泪目' 10df['col3'] = df['col1'].apply(getValue) 11df

运行结果如下图所示:

image.png

方法三:【冫马讠成】解答

【冫马讠成】大佬给了一个思路,使用replace实现。

image.png

代码如下所示:

df['col4'] = df['col1'].replace(1, '开心').replace(2, '悲伤').replace(3, '难过').replace(4, '泪目')

得到的结果如下所示:

image.png

方法四:【dcpeng】解答

这个方法是基于apply()函数,代码如下所示:

1def get_value(s): 2 dict = {1:"开心", 2:"悲伤", 3:"难过", 4:"泪目"} 3 return dict[s] 4df['col5'] = df['col1'].apply(get_value) 5df

运行结果如下图所示:

image.png

方法五:【沈复】解答

【沈复】大佬给了一个思路和代码,如下图所示:

image.png

这个方法是基于map()函数,代码如下所示:

1def get_value(s): 2 dict = {1:"开心", 2:"悲伤", 3:"难过", 4:"泪目"} 3 return dict[s] 4df['col5'] = df['col1'].map(get_value) 5df

运行结果如下图所示:

image.png

方法六:【月神】解答

这里【月神】仍然是使用replace方法进行实现的,但是代码秀了很多。

image.png

代码如下所示:

df['col7'] = df['col1'].replace([1, 2, 3, 4], ['开心', '悲伤', '难过', '泪目'])

【月神】提醒:这个是全匹配,不要加regex=True参数,不然你会后悔的!

运行结果如下图所示:

image.png

三、总结

大家好,我是Python进阶者。这篇文章基于粉丝提问,针对有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换的问题,盘点了6个Pandas中批量替换字符的方法,给出了具体说明和演示,顺利地帮助粉丝解决了问题!

最后感谢粉丝【dcpeng】提问,感谢【🌑(这是月亮的背面)】和【dcpeng】、【才哥】、【沈复】、大佬给出的示例和代码支持。感谢粉丝【冫马讠成】、【老松鼠】等人参与学习交流。

image.png

点赞
收藏

评论区

加载中...

相关推荐

编写一个闭包函数,要实现的功能是计数功能

大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个Python装饰器的问题,这里拿出来给大家分享下,一起学习下。二、解决过程这里【东哥】给出了解答,其实这个题目就是在考你装饰器的内容。代码如下:count0defwrapper(func):definner(args,kwargs):g

Python中的and和or,结果让人出乎意料之外

大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python基础的问题,关于and和or,这里拿出来给大家分享下,一起学习下。二、解决过程这里【杰】给出了解答,其实Python中,除括号外,and优先级较高,那么这里的话【瑜亮老师】也给出了解答,确实没有括号,表达式从左往右运算,and比or优先级高,先算an

盘点Python正则表达式中的贪婪模式和非贪婪模式

大家好,我是我是皮皮。一、前言前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个关于Python正则表达式的问题,其中涉及到Python正则表达式中的贪婪模式和非贪婪模式,讨论十分火热,这里拿出来给大家分享下,一起学习。二、解决过程这里分享【小王】大佬的解答,一起来看看吧,下面是他给的一个示例代码。importretxt"Thisis

Python面向对象中的类变量,实例变量怎么来理解?

大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。二、解决过程在PythonTutorial中对于类变量和实例变量是这样描述的:Generallyspeaking,instancevariablesarefordatauniquet

盘点Pandas中数据删除drop函数的一个细节用法

大家好,我是皮皮。一、前言前几天在Python最强王者群有个叫【Chloe】的粉丝问了一个关于Pandas中的drop函数的问题,这里拿出来给大家分享下,一起学习。二、解决过程下图是粉丝写的代码。index是索引的意思,我感觉这块写在一起了,看上去不太好理解,在里边还多了一层筛选。这里给出【月神】佬的解答,一起来看看吧!直接上图了,如下图所示:下图是官网

如何把一个python列表(有很多个元素)变成一个excel表格的第一列?

大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【麦当】的粉丝问了一个关于Python如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,这里拿出来给大家分享下,一起学习。二、解决过程这里给出【dcp