首頁 > 軟體

Pandas中批次替換字元的六種方法總結

2022-03-09 13:01:04

一、前言

前幾天在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的資料,如何將1批次換為“開心”,2批次換為“悲傷”這種字元替換的問題,盤點了6個Pandas中批次替換字元的方法,給出了具體說明和演示,順利地幫助粉絲解決了問題!

以上就是Pandas中批次替換字元的六種方法總結的詳細內容,更多關於Pandas替換字元的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com