pandas數據處理之 標簽列字符轉數字的實現

機器學習中,當我們在進行數據預處理的時候,對於標簽列非字符的數據,我們往往需要將其轉換成字符,因為有的算法可能不支持非數字類型來做特征。

那麼怎麼快捷地來著這個轉換呢,請看我的示例:

1.構建測試數據

import pandas as pd
array = ['good','bad','well','bad','good','good','well','good']

2.數據轉換下,並獲取標簽列的字典

df = pd.DataFrame(array,columns=['status'])
status_dict = df['status'].unique().tolist()

3.使用函數進行轉換

df['transfromed']=df['status'].apply(lambda x : status_dict.index(x))

這樣,就將標簽列處理好瞭哈

等用完之後,再轉回來

df['transfromed1']= df['transfromed'].apply(lambda x : status_dict[x])

補充:pandas factorize將字符串特征轉化為數字特征

將原始數據中的字符串特征轉化為模型可以識別的數字特征可是使用pandas自帶的factorzie方法。

原始數據的job特征值如下

都是字符串特征,無法用於訓練,當然可以單獨建立map硬編碼處理,但是pandas已經封裝好瞭相應的方法。

data = pd.read_csv("data/test_set.csv")
data["job"] = pd.factorize(data["job"])[0].astype(np.uint16)

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: