如何将标准化Pandas DataFrame还原为嵌套字典列表?
还原标准化DataFrame为嵌套字典列表的方法
当然可以还原,核心思路是通过拆分DataFrame中带点分隔的列名,逐层重建嵌套字典结构。以下是针对你示例的实现代码:
import pandas as pd # 原始示例数据 sample_list_of_dicts = [ { 'group1': { 'item1': 'value1', 'item2': 'value2' } }, { 'group1': { 'item1': 'value3', 'item2': 'value4' } } ] df = pd.json_normalize(sample_list_of_dicts) # 定义还原函数 def denormalize_df(df): restored = [] for _, row in df.iterrows(): nested = {} for col_name, value in row.items(): # 拆分列名的层级 keys = col_name.split('.') current_level = nested # 逐层构建嵌套结构 for key in keys[:-1]: if key not in current_level: current_level[key] = {} current_level = current_level[key] current_level[keys[-1]] = value restored.append(nested) return restored # 执行还原并输出 restored_list = denormalize_df(df) print(restored_list)
逻辑说明
- 遍历DataFrame的每一行数据,为每行创建一个空的嵌套字典
- 对每个列名按
.拆分,得到层级键列表(比如group1.item1拆分为['group1', 'item1']) - 从最外层字典开始,逐层进入嵌套层级,不存在的键就创建新的空字典
- 最后将列对应的值赋值给最内层的键
- 把每行构建好的嵌套字典加入结果列表
这个方法同样适用于更深层级的嵌套结构(比如group1.subgroup.item这类列名),无需修改核心逻辑。
内容的提问来源于stack exchange,提问作者espogian
相关产品推荐
相关产品推荐

