You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历DataFrame并生成多个指定结构的嵌套字典?

遍历DataFrame生成多个独立嵌套字典的解决方案

需求说明

基于给定的模板嵌套字典,遍历Pandas DataFrame的每一行,将每行的book_name和amount_page字段值替换到模板字典的book1列表中,最终生成与DataFrame行数一致的独立嵌套字典。

代码实现

import pandas as pd
import copy  # 用于深拷贝嵌套字典,避免引用关联问题

# 定义数据源并创建DataFrame
data = {'book_name': ['philosopher', 'chamber', 'azkaban', 'goblet', 'phoenix','prince','hallow'],
        'amount_page': [220, 280, 330, 450, 1000,650,600]
        }
df = pd.DataFrame(data)

# 模板字典
template_dict = {
    "A": "EXAMPLE",
    "comment": "This is an example",
    "author": "JKROWLING",
    "book1": [
        {
            "book_name": 'place book name',
            "amount_pages": 'place book_pages' 
        }
    ]
}

# 生成结果字典列表
result_dicts = []
for _, row in df.iterrows():
    # 深拷贝模板字典,确保每个新字典完全独立
    new_dict = copy.deepcopy(template_dict)
    # 替换book1中的字段值
    new_dict['book1'][0]['book_name'] = row['book_name']
    new_dict['book1'][0]['amount_pages'] = row['amount_page']
    # 添加到结果列表
    result_dicts.append(new_dict)

# 可选:打印验证结果
for i, dict_item in enumerate(result_dicts, 1):
    print(f"第{i}个字典:")
    print(dict_item)
    print("---")

关键说明

  1. 深拷贝模板字典:由于原字典是嵌套结构,使用copy.deepcopy()可以确保每个新生成的字典都是独立对象,不会出现修改一个字典影响其他字典的情况。如果字典嵌套层级较浅,也可以用浅拷贝template_dict.copy(),但深拷贝更稳妥。
  2. 遍历DataFrame:使用df.iterrows()逐行读取DataFrame数据,row对象可直接通过字段名获取对应值。
  3. 替换字段值:通过索引定位到book1列表中的字典,直接替换book_name和amount_pages的值即可。

内容的提问来源于stack exchange,提问作者Valdeloco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:05:39