如何使用DataFrame替换Python字典列表中的键名
实现思路
先把存储新旧键映射关系的DataFrame转成普通Python映射字典,再遍历原字典列表逐个替换键即可,实现代码如下:
import pandas as pd # 原有字典列表 L = [{"V":"S001"}, {"V": "S002"}, {"VI": "S001"}, {"VI": "S005"}, {"VII":"S005"}, {"V":"S009"},{"VIII":"S007"}] # 映射关系DataFrame df = pd.DataFrame({ "dx": ["VIII", "VI", "V", "VII"], "new_col": ["dx_1", "dx_2", "dx_3", "dx_4"] }) # 生成旧键→新键的映射字典 key_map = df.set_index('dx')['new_col'].to_dict() # 批量替换键生成新列表 new_L = [{key_map[old_k]: v for old_k, v in item.items()} for item in L] # 输出结果和你期望的完全一致 print(new_L)
如果存在部分旧键不在映射表的场景,可把key_map[old_k]改成key_map.get(old_k, old_k),找不到映射时会保留原键名避免报错。
内容的提问来源于stack exchange,提问作者Santoo
相关产品推荐
相关产品推荐

