Pandas中批量替換字符的六種方法總結(jié)
一、前言
前幾天在Python最強(qiáng)王者群有個(gè)叫【dcpeng】的粉絲問(wèn)了一個(gè)關(guān)于Pandas中的問(wèn)題,這里拿出來(lái)給大家分享下,一起學(xué)習(xí)。
想問(wèn)一下我有一列編碼為1,2,3,4的數(shù)據(jù),如何將1批量換為“開(kāi)心”,2批量換為“悲傷”這種字符替換呢?
二、解決過(guò)程
思路挺簡(jiǎn)單,限定Pandas處理,想到的方法有很多,這里拿出來(lái)給大家分享,希望對(duì)大家的學(xué)習(xí)有幫助。
下面這個(gè)是生成源數(shù)據(jù)的代碼:
df?=?pd.DataFrame({'col1':?[1,?2,?2,?3,?3,?3,?4,?4,?4,?4]}) df
方法一
代碼如下所示:
df['col2']?=?df['col1'].map({1:"開(kāi)心",?2:"悲傷",?3:"難過(guò)",?4:"淚目"}) df
運(yùn)行結(jié)果如下圖所示:
方法二
這個(gè)方法是參考才哥的文章寫出來(lái)的,代碼如下所示:
def?getValue(s): ????if?s==1: ????????return?'開(kāi)心' ????elif?s==2: ????????return?'悲傷' ????elif?s==3: ????????return?'難過(guò)' ????elif?s==4: ????????return?'淚目' df['col3']?=?df['col1'].apply(getValue) df
運(yùn)行結(jié)果如下圖所示:
方法三
【冫馬讠成】大佬給了一個(gè)思路,使用replace
實(shí)現(xiàn)。
代碼如下所示:
df['col4']?=?df['col1'].replace(1,?'開(kāi)心').replace(2,?'悲傷').replace(3,?'難過(guò)').replace(4,?'淚目') df
得到的結(jié)果如下所示:
方法四
這個(gè)方法是基于apply()函數(shù),代碼如下所示:
def?get_value(s): ????dict?=?{1:"開(kāi)心",?2:"悲傷",?3:"難過(guò)",?4:"淚目"} ????return?dict[s] df['col5']?=?df['col1'].apply(get_value) df
運(yùn)行結(jié)果如下圖所示:
方法五
【沈復(fù)】大佬給了一個(gè)思路和代碼,如下圖所示:
這個(gè)方法是基于map()函數(shù),代碼如下所示:
def?get_value(s): ????dict?=?{1:"開(kāi)心",?2:"悲傷",?3:"難過(guò)",?4:"淚目"} ????return?dict[s] df['col5']?=?df['col1'].map(get_value) df
運(yùn)行結(jié)果如下圖所示:
方法六
這里【月神】仍然是使用replace
方法進(jìn)行實(shí)現(xiàn)的,但是代碼秀了很多。
代碼如下所示:
df['col7']?=?df['col1'].replace([1,?2,?3,?4],?['開(kāi)心',?'悲傷',?'難過(guò)',?'淚目']) df
【月神】提醒:這個(gè)是全匹配,不要加regex=True參數(shù),不然你會(huì)后悔的!
運(yùn)行結(jié)果如下圖所示:
三、總結(jié)
這篇文章基于粉絲提問(wèn),針對(duì)有一列編碼為1,2,3,4的數(shù)據(jù),如何將1批量換為“開(kāi)心”,2批量換為“悲傷”這種字符替換的問(wèn)題,盤點(diǎn)了6個(gè)Pandas中批量替換字符的方法,給出了具體說(shuō)明和演示,順利地幫助粉絲解決了問(wèn)題!
以上就是Pandas中批量替換字符的六種方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Pandas替換字符的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
獲取CSDN文章內(nèi)容并轉(zhuǎn)換為markdown文本的python
這篇文章主要介紹了自己寫的小工具,可以直接獲取csdn文章并轉(zhuǎn)換為markdown格式,需要的朋友可以參考下2020-09-09pytorch實(shí)現(xiàn)ResNet結(jié)構(gòu)的實(shí)例代碼
ResNet網(wǎng)絡(luò)可以達(dá)到很深的層數(shù)的原因就是不斷的堆疊殘差結(jié)構(gòu)而來(lái)的,接下來(lái)通過(guò)本文給大家介紹pytorch實(shí)現(xiàn)ResNet結(jié)構(gòu)的示例代碼,喜歡的朋友跟隨小編一起看看吧2021-05-05Python自動(dòng)發(fā)送郵件的方法實(shí)例總結(jié)
這篇文章主要介紹了Python自動(dòng)發(fā)送郵件的方法,結(jié)合實(shí)例形式總結(jié)分析了Python使用smtplib和email模塊發(fā)送郵件的相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-12-12Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從字典中提取子集的方法示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從字典中提取子集的方法,涉及Python字典推導(dǎo)式的相關(guān)使用技巧,需要的朋友可以參考下2018-03-03解決python報(bào)錯(cuò)ImportError:urllib3?v2.0?only?supports?OpenSSL
這篇文章主要介紹了解決python報(bào)錯(cuò)ImportError:urllib3?v2.0?only?supports?OpenSSL?1.1.1+的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12淺談一下關(guān)于Python對(duì)XML的解析
這篇文章主要介紹了淺談一下關(guān)于Python對(duì)XML的解析,XML是一套定義語(yǔ)義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對(duì)這些部件加以標(biāo)識(shí),需要的朋友可以參考下2023-05-05