我有一个分类数据的数据框,我想重新编码。 每列都有其单独的重新编码值字典。
下面是我迄今为止所拥有的代码的玩具示例:
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 列。)是否有更简洁的方法来映射(应用)整个数据框?
replace
可以采用分层字典,其中第一层的键是列的名称,值是用于在相应列中进行替换的字典。
ser.replace(dict(a=a_dict, b=b_dict))
a b
0 11 22
1 33 22
2 33 44
3 11 55