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

如何高效将嵌套字典列表转换为Pandas DataFrame(超50万条数据)

优化大型嵌套列表转DataFrame的速度问题

原始数据格式

results = [
    {'Parcel': {'AIN': '2004001003','Longitude': '-118.620668807','Latitude':'34.2202197879'}},
    {'Parcel': {'AIN': '2004001004','Longitude': '-118.620668303','Latitude': '34.2200390973'}}
]

需求

将上述嵌套列表转换为包含AIN、Longitude、Latitude三列的DataFrame,原循环拼接方法在50万条数据场景下速度极慢,需优化。

原代码低效原因

原代码通过循环调用pd.concat逐行拼接DataFrame,每次拼接都会创建新的DataFrame对象,伴随频繁的内存分配与数据拷贝,数据量越大(如50万条),性能下降越明显,时间复杂度为O(n²)。

优化方案

直接一次性整理数据后构造DataFrame,仅做一次内存分配,时间复杂度为O(n),效率提升显著:

方案1:提取所有Parcel字典后构造

import pandas as pd

# 用列表推导式批量提取每个元素中的Parcel字典
parcel_list = [item['Parcel'] for item in results]
# 一次性生成DataFrame
df = pd.DataFrame(parcel_list)

方案2:指定目标列(可选)

如果需要严格保留指定的三列顺序或过滤其他字段,可明确指定columns参数:

df = pd.DataFrame(parcel_list, columns=['AIN', 'Longitude', 'Latitude'])

效果验证

该方法处理50万条数据时,耗时仅为原循环拼接方法的几十分之一,完全能满足大规模数据的转换需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:22:42