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

Dictionary数据无法正确追加至另一Dictionary的技术求助

解决Dictionary无法正确追加分组后Pandas数据的问题

看你的描述,应该是遍历分组后的Pandas数据acc_grp时,每次生成的result字典都能正常打印,但没法把这些结果正确整合到目标字典里对吧?这大概率是没搞清楚字典的特性——字典的键是唯一的,直接赋值的话后面内容会覆盖前面的,或是没用到合适的容器存储多条记录。

给你两种常见的解决方案,按需选择:

方案1:用列表存储所有结果(适合需要多条记录的场景)

如果你的目标是收集每一行生成的字典,应该初始化一个空列表,每次迭代把result追加进去:

# 初始化空列表用来存所有结果
final_records = []
# 你的模板字典,可根据需求合并到结果中
template_dict = {}  

# 遍历acc_grp的每一行数据
for idx, row in acc_grp.iterrows():
    # 生成当前行的result字典,注意字段映射要和你打印的结果匹配
    result = {
        'date': str(idx),  # 将日期索引转为字符串格式
        'credit': row['debit'],  # 对应你第一次打印的credit值来自原数据debit列
        'balance': row['balance'] + row['credit'] + row['debit'],  # 这里是balance的计算逻辑,按需调整
        'debit': row['lid']  # 对应你打印的debit值来自原数据lid列
    }
    # 合并模板字典与当前结果(不需要的话可删除此行)
    result = {**template_dict, **result}
    # 将当前结果追加到列表中
    final_records.append(result)

# 现在final_records就是包含所有行数据的字典列表
print(final_records)

方案2:用日期作为键存储到大字典(适合按日期快速查找的场景)

如果想把每条记录按日期作为键存入一个大字典,可参考以下代码:

final_dict = {}
template_dict = {}  # 你的模板字典

for idx, row in acc_grp.iterrows():
    result = {
        'credit': row['debit'],
        'balance': row['balance'] + row['credit'] + row['debit'],
        'debit': row['lid']
    }
    # 合并模板字典与当前结果(不需要的话可删除此行)
    result = {**template_dict, **result}
    # 以日期为键,将结果存入大字典
    final_dict[str(idx)] = result

# 现在final_dict中每个日期对应一条记录
print(final_dict)

关键提醒:

  • 字典是键值对结构,不能直接「追加」新记录,必须用列表收集多个字典,或是给每个记录分配唯一键(比如日期)存入大字典。
  • 注意字段映射关系,你第一次打印的result里credit对应原数据debit列、debit对应lid列,balance是计算后的值,一定要确保逻辑匹配,避免数据对应错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:36:49