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

如何优化Pandas实现Excel表格转值为列表的嵌套字典?

高效实现DataFrame转嵌套字典的方法

问题描述

我用parse命令读取了一个多列的大型表格,想要把第一列(Company)和第二列(Product)作为嵌套键对,其余列的值存储为列表。我已经写了一段能实现需求的代码,但想知道有没有更高效的实现方式。

我的实现代码

import pandas as pd

# 数据框来自Excel表格,用df.parse读取
df = pd.DataFrame({
    "Company": ["TechCorp", "Innovate Inc", "Green Solutions", "Future Dynamics"],
    "Product": ["TC100", "IN200", "GS300", "FD400"],
    "Production Cost": [10000, 15000, 12000, 18000],
    "Development Time": [6, 9, 8, 12],
    "Launch Year": [2023, 2024, 2023, 2025]
})
nested_dict = {}
for index, row in df.iterrows():
    fleet = row['Company']
    engine = row['Product']
    values = row[['Production Cost', 'Development Time', 'Launch Year']].tolist()

    if fleet not in nested_dict:
        nested_dict[fleet] = {}
    nested_dict[fleet][engine] = values
return nested_dict

目标结构

{'TechCorp': {'TC100': [10000, 6, 2023]}, 'Innovate Inc': {'IN200': [15000, 9, 2024]}, 'Green Solutions': {'GS300': [12000, 8, 2023]}, 'Future Dynamics': {'FD400': [18000, 12, 2025]}}

更高效的实现方案

你的代码逻辑没问题,但iterrows()在处理大型DataFrame时效率偏低,因为它是逐行遍历的。可以用pandas的原生向量化操作替代,大幅提升处理速度。

方案1:GroupBy + 字典推导

利用groupby按Company分组,每组内将Product映射为对应的值列表:

import pandas as pd

df = pd.DataFrame({
    "Company": ["TechCorp", "Innovate Inc", "Green Solutions", "Future Dynamics"],
    "Product": ["TC100", "IN200", "GS300", "FD400"],
    "Production Cost": [10000, 15000, 12000, 18000],
    "Development Time": [6, 9, 8, 12],
    "Launch Year": [2023, 2024, 2023, 2025]
})

nested_dict = {
    company: group.set_index('Product')[['Production Cost', 'Development Time', 'Launch Year']].apply(list, axis=1).to_dict()
    for company, group in df.groupby('Company')
}

方案2:Set Index + Stack + To Dict(最简洁高效)

通过设置双索引,直接将剩余列转为列表后构建嵌套字典,代码更简洁,执行效率更高:

nested_dict = df.set_index(['Company', 'Product']).apply(list, axis=1).unstack().to_dict('index')

这两种方案都避免了逐行迭代,依托pandas内部优化处理数据,在大型表格上的性能远优于iterrows()。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:07:15