pandas - 如何使用数据框更改字典中键的名称?
问题描述
我正在寻找替换这本字典中的所有键 -
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"}]
解决方案
从给定的数据框创建一个映射系列,然后使用列表理解中的映射系列替换键
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'}]