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

如何将DataFrame指定类别数据存入字典?解决仅存最后一行问题

解决DataFrame筛选Categoria=34行存入字典的问题

给定的DataFrame如下:

Data        Código de barras    Categoria       Marca    
2   2022-12-31  590688144812        55              AW0152 
3   2022-12-31  No                  34              CÂMARA  
4   2022-12-31  No                  34              CÂMARA FULL

尝试了以下代码,但只能存入最后一行符合条件的数据:

for i,j in tabela_insere.iterrows():
    if j["Categoria"] == 34:
        print(j)
        dados = [j.to_dict()]

问题原因

每次循环中都执行dados = [j.to_dict()],相当于重新创建一个只包含当前行的列表,之前存入的数据会被覆盖,最终只保留最后一次循环的结果。

解决方法

方法1:循环外初始化空列表,循环内追加数据

在循环开始前先创建一个空列表,每次找到符合条件的行就把该行的字典追加进去:

dados = []  # 提前初始化空列表
for i,j in tabela_insere.iterrows():
    if j["Categoria"] == 34:
        print(j)
        dados.append(j.to_dict())  # 用append添加行字典到列表

方法2:用pandas矢量化操作(更高效)

避免使用循环,直接通过pandas的筛选功能获取目标行,再转成字典列表,这种方式在数据量较大时效率更高:

# 筛选Categoria等于34的行,再转成字典列表('records'表示每行一个字典)
dados = tabela_insere[tabela_insere["Categoria"] == 34].to_dict('records')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:07:20