盤點(diǎn)6個(gè)Pandas中批量替換字符的方法
點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注
回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
今
日
雞
湯
朱雀橋邊野草花,烏衣巷口夕陽(yáng)斜。大家好,我是Python進(jìn)階者。
一、前言
前幾天在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批量換為“開心”,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:"開心",?2:"悲傷",?3:"難過(guò)",?4:"淚目"})
df
運(yùn)行結(jié)果如下圖所示:

方法二:【dcpeng】解答
這個(gè)方法是參考才哥的文章寫出來(lái)的,代碼如下所示:
def?getValue(s):
????if?s==1:
????????return?'開心'
????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,?'開心').replace(2,?'悲傷').replace(3,?'難過(guò)').replace(4,?'淚目')
df
得到的結(jié)果如下所示:

方法四:【dcpeng】解答
這個(gè)方法是基于apply()函數(shù),代碼如下所示:
def?get_value(s):
????dict?=?{1:"開心",?2:"悲傷",?3:"難過(guò)",?4:"淚目"}
????return?dict[s]
df['col5']?=?df['col1'].apply(get_value)
df
運(yùn)行結(jié)果如下圖所示:

方法五:【沈復(fù)】解答
【沈復(fù)】大佬給了一個(gè)思路和代碼,如下圖所示:

這個(gè)方法是基于map()函數(shù),代碼如下所示:
def?get_value(s):
????dict?=?{1:"開心",?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],?['開心',?'悲傷',?'難過(guò)',?'淚目'])
df
【月神】提醒:這個(gè)是全匹配,不要加regex=True參數(shù),不然你會(huì)后悔的!
運(yùn)行結(jié)果如下圖所示:

三、總結(jié)
大家好,我是Python進(jìn)階者。這篇文章基于粉絲提問(wèn),針對(duì)有一列編碼為1,2,3,4的數(shù)據(jù),如何將1批量換為“開心”,2批量換為“悲傷”這種字符替換的問(wèn)題,盤點(diǎn)了6個(gè)Pandas中批量替換字符的方法,給出了具體說(shuō)明和演示,順利地幫助粉絲解決了問(wèn)題!
最后感謝粉絲【dcpeng】提問(wèn),感謝【??(這是月亮的背面)】和【dcpeng】、【才哥】、【沈復(fù)】、大佬給出的示例和代碼支持。感謝粉絲【冫馬讠成】、【老松鼠】等人參與學(xué)習(xí)交流。

小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過(guò)程中,有遇到任何問(wèn)題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:
盤點(diǎn)一道使用Python編程來(lái)實(shí)現(xiàn)高斯計(jì)算的基礎(chǔ)算術(shù)題目
盤點(diǎn)一道Python基礎(chǔ)實(shí)現(xiàn)代數(shù)運(yùn)算的基礎(chǔ)題目

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說(shuō)一兩句吧~
