如何将DataFrame列值替换为对应字典的键?
把DataFrame的ID列替换为字典对应键的方法
首先得把原字典反转,生成「单个ID值→对应键」的映射关系——毕竟原字典是一个键对应多个ID值,我们需要反过来让每个ID都能匹配到对应的键。
方法一:先建反转映射,再用map替换
# 你的原始字典 dic = {'1' : ['A', 'B', 'C'], '2' : ['D', 'E'] , '3' : ['F']} # 生成反转后的映射字典 reverse_map = {} for key, id_list in dic.items(): for id_val in id_list: reverse_map[id_val] = key # 替换ID列 df['ID'] = df['ID'].map(reverse_map)
方法二:用replace一步到位
pandas的replace方法支持直接传入推导出来的映射,不用单独建字典:
# 直接生成映射并替换 df['ID'] = df['ID'].replace({id_val: key for key, id_list in dic.items() for id_val in id_list})
最终效果
处理后你的DataFrame的ID列会变成:
0 1 1 1 2 1 3 2 4 2 5 3 Name: ID, dtype: object
内容的提问来源于stack exchange,提问作者joss
相关产品推荐
相关产品推荐

