2017-06-02 48 views
1

我有一個我想重新編碼的分類數據的數據框。以下是我到目前爲止的代碼的玩具示例重新編碼熊貓的分類變量

import pandas as pd 
ser = pd.DataFrame({'a':[1,3,3,1], 'b':[2,2,4,5]}) 
print(ser) 
a_dict = {1:11, 3:33} 
b_dict = {2:22, 4:44, 5:55} 
ser.a = ser.a.map(a_dict) 
ser.b = ser.b.map(b_dict) 
print(ser) 

當然,我的真實數據有2列以上。是否有更簡潔的映射(應用)整個數據框的方式?每一列都有獨立的重新編碼值字典。

在此先感謝

萊昂

回答

3

replace可以採取分層字典,其中第一層的鍵列和值的名稱使用在各個列替換的字典。

ser.replace(dict(a=a_dict, b=b_dict)) 

    a b 
0 11 22 
1 33 22 
2 33 44 
3 11 55 
+0

謝謝piRSquared。熊貓是驚人的,stackoverflow令人驚歎... – leon