重新编码熊猫中的分类变量

时间:2017-06-02 02:21:55

标签: python pandas categorical-data

我有一个我想重新编码的分类数据的数据框。下面是我到目前为止的代码的玩具示例

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列。是否有一种更简洁的方法来映射(应用)整个数据帧?每列都有它的单独的重新编码值字典。

提前致谢

莱昂

1 个答案:

答案 0 :(得分:4)

replace可以使用分层词典,其中第一层的键是列的名称,值是用于在相应列中替换的词典。

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

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