3
我有我要地图使用相同的字典一个新的列(并返回0如果在字典中没有匹配的密钥)两列。大熊猫:多列映射到一个列
>> codes = {'2':1,
'31':1,
'88':9,
'99':9}
>> df[['driver_action1','driver_action2']].to_dict()
{'driver_action1': {0: '1',
1: '1',
2: '77',
3: '77',
4: '1',
5: '4',
6: '2',
7: '1',
8: '77',
9: '99'},
'driver_action2': {0: '31',
1: '99',
2: '31',
3: '55',
4: '1',
5: '5',
6: '99',
7: '2',
8: '4',
9: '99'}}
我想,我可能只是这样做:
>> df['driver_reckless_remapped'] = df[['driver_action1','driver_action2']].applymap(lambda x: codes.get(x,0))
预期输出:
driver_action1 driver_action2 driver_reckless_remapped
0 1 31 1
1 1 99 9
2 77 31 1
3 77 55 0
4 1 1 0
5 4 5 0
6 2 99 1
7 1 2 1
8 77 4 0
9 99 99 9
而是我得到:
TypeError: ("'dict' object is not callable", 'occurred at index driver_action1')
有没有办法来图多列到一个新列?
伟大的作品,谢谢! – ale19
@ ale19,欢迎您:) – MaxU
使用多于2列时,这似乎不起作用......我添加了一些更多的文字到我的帖子中,以使用3列的示例进行说明。 – ale19