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

如何从含字典元素的大型numpy数组创建pandas DataFrame且低内存占用?

解决方法

可以用生成器表达式避免将整个numpy数组转换为列表,这种惰性迭代的方式不会额外占用大量内存,直接传递给pd.DataFrame即可:

import numpy as np
import pandas as pd

# 你的目标numpy数组
my_array = np.array([{'col1': 'somevalue', 'col2': 2}, {'col1': 'someotherval', 'col2': 4}, {'col1': 'zzzzz', 'col2': 47}], dtype=object)

# 生成目标DataFrame
df = pd.DataFrame(x for x in my_array)

生成的结果完全符合预期:

col1col2
somevalue2
someotherval4
zzzzz47

原理说明

生成器表达式(x for x in my_array)不会一次性把所有字典加载到内存,而是逐个返回数组元素,处理大型数组时,内存占用和原numpy数组基本一致,不会产生额外的列表内存开销。

你也可以用pd.DataFrame.from_records搭配生成器,效果相同:

df = pd.DataFrame.from_records(x for x in my_array)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:10:27