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

Python进阶者
• 阅读 181

大家好,我是Python进阶者。

一、前言

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

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

二、解决过程

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

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

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

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

方法一:【月神】解答

代码如下所示:

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

运行结果如下图所示:

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

方法二:【dcpeng】解答

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

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

运行结果如下图所示:

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

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

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

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

代码如下所示:

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

得到的结果如下所示:

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

方法四:【dcpeng】解答

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

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

运行结果如下图所示:

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

方法五:【沈复】解答

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

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

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

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

运行结果如下图所示:

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

方法六:【月神】解答

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

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

代码如下所示:

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

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

运行结果如下图所示:

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

三、总结

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

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

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

点赞
收藏
评论区
推荐文章
Python进阶者 Python进阶者
2年前
编写一个闭包函数,要实现的功能是计数功能
大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个Python装饰器的问题,这里拿出来给大家分享下,一起学习下。二、解决过程这里【东哥】给出了解答,其实这个题目就是在考你装饰器的内容。代码如下:count0defwrapper(func):definner(args,kwargs):g
Python进阶者 Python进阶者
2年前
Python中的and和or,结果让人出乎意料之外
大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python基础的问题,关于and和or,这里拿出来给大家分享下,一起学习下。二、解决过程这里【杰】给出了解答,其实Python中,除括号外,and优先级较高,那么这里的话【瑜亮老师】也给出了解答,确实没有括号,表达式从左往右运算,and比or优先级高,先算an
Python进阶者 Python进阶者
2年前
盘点Python正则表达式中的贪婪模式和非贪婪模式
大家好,我是我是皮皮。一、前言前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个关于Python正则表达式的问题,其中涉及到Python正则表达式中的贪婪模式和非贪婪模式,讨论十分火热,这里拿出来给大家分享下,一起学习。二、解决过程这里分享【小王】大佬的解答,一起来看看吧,下面是他给的一个示例代码。importretxt"Thisis
Python进阶者 Python进阶者
2年前
Python面向对象中的类变量,实例变量怎么来理解?
大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。二、解决过程在PythonTutorial中对于类变量和实例变量是这样描述的:Generallyspeaking,instancevariablesarefordatauniquet
Python进阶者 Python进阶者
2年前
盘点Pandas中数据删除drop函数的一个细节用法
大家好,我是皮皮。一、前言前几天在Python最强王者群有个叫【Chloe】的粉丝问了一个关于Pandas中的drop函数的问题,这里拿出来给大家分享下,一起学习。二、解决过程下图是粉丝写的代码。index是索引的意思,我感觉这块写在一起了,看上去不太好理解,在里边还多了一层筛选。这里给出【月神】佬的解答,一起来看看吧!直接上图了,如下图所示:下图是官网
Python进阶者 Python进阶者
3星期前
如何把一个python列表(有很多个元素)变成一个excel表格的第一列?
大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【麦当】的粉丝问了一个关于Python如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,这里拿出来给大家分享下,一起学习。二、解决过程这里给出【dcp
Python进阶者 Python进阶者
2年前
盘点Pandas中csv文件读取的方法所带参数usecols知识
大家好,我是皮皮。一、前言前几天在Python最强王者群有个叫【老松鼠】的粉丝问了一个关于Pandas中csv文件读取的方法所带参数usecols知识问题,这里拿出来给大家分享下,一起学习。其实usecols参数是指定列读取。二、解决过程下面是【德善堂小儿推拿瑜亮老师】大佬解答:举个栗子,就像你手中只有常见的人民币面值,让你把面值等于5元,10元,100
Python进阶者 Python进阶者
1年前
盘点Pandas中数据删除drop函数的一个细节用法
大家好,我是皮皮。一、前言前几天在Python最强王者群有个叫【Chloe】的粉丝问了一个关于Pandas中的drop函数的问题,这里拿出来给大家分享下,一起学习。二、解决过程下图是粉丝写的代码。index是索引的意思,我感觉这块写在一起了,看上去不太好理
Python进阶者 Python进阶者
1个月前
如何把一个python列表(有很多个元素)变成一个excel表格的第一列?
大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【麦当】的粉丝问了一个关于Python如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,这里拿出来给大家分享下,一起学习。二、解决过程这里给出【dcp
Python进阶者 Python进阶者
2年前
盘点一道Pandas中分组聚合groupby()函数用法的基础题
大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【Chloé】的粉丝问了一个关于Pandas中groupby函数的问题,这里拿出来给大家分享下,一起学习。这个粉丝在法国留学,所以提问是英文的,当然了英文看上去也不难,有点二级英文基础,也看得懂,实在不行,在线翻译一下也问题不大了。二、解决过程这里给出【dcpeng】大佬和【月神】的解答。