首页 > 解决方案 > 如何使用数据框更改字典中键的名称?

问题描述

我正在寻找替换这本字典中的所有键 -

L = [{"V":"S001"}, {"V": "S002"}, {"VI": "S001"}, {"VI": "S005"}, {"VII":"S005"}, {"V":"S009"},{"VIII":"S007"}]

这是具有唯一键和名称的数据框

     dx new_col
0  VIII    dx_1
1    VI    dx_2
2     V    dx_3
3   VII    dx_4

我正在寻找的输出是 -

L = [{"dx_3":"S001"}, {"dx_3": "S002"}, {"dx_2": "S001"}, {"dx_2": "S005"}, {"dx_4":"S005"}, {"dx_3":"S009"},{"dx_1":"S007"}]

标签: pandasdictionary

解决方案


从给定的数据框创建一个映射系列,然后使用列表理解中的映射系列替换键

s = df.set_index('dx')['new_col']
[{s.get(k, k): v for k, v in d.items()} for d in L]

[{'dx_3': 'S001'},
 {'dx_3': 'S002'},
 {'dx_2': 'S001'},
 {'dx_2': 'S005'},
 {'dx_4': 'S005'},
 {'dx_3': 'S009'},
 {'dx_1': 'S007'}]

推荐阅读