gpt4 book ai didi

python - 为什么我的 pandas 数据框使用这么多内存?

转载 作者:行者123 更新时间:2023-11-30 09:17:28 24 4
gpt4 key购买 nike

我有一个 json 文件要读取,所以我使用以下代码:

test_filelist = os.listdir('myDir') 
df_test_list = [pd.read_json( os.path.join('myDir',file),lines=True ) for file in test_filelist if file.endswith('json') ]
df_test = pd.concat(df_test_list)

我的方向的总大小是4.5G,但是当我使用top检查我的进程使用的内存时,我发现该进程在读取完成时使用了30G。为什么会发生这种情况?我只读取了4.5G的json文件,但已经使用了30G内存,如何避免这种情况?

我打印了df_test.info(),它告诉我这个数据帧仅使用177.7 MB内存,为什么?

最佳答案

似乎您将所有数据帧存储在 df_test_list 中,然后将连接的数据帧保存在 df_test 中。这样,你的内存中就会有大量不必要的数据。 数据框对象的列表将是昂贵的

避免保存第一个列表

df_test = pd.concat([pd.read_json( os.path.join('myDir',file),lines=True ) for file in test_filelist if file.endswith('json')])

或者将其抽象到不同的范围,例如函数。

这样,您的内存消耗将达到峰值,但最终的内存使用量将低于当前的内存使用量。

我还建议阅读this answer从内存使用测量中获得一些见解。

关于python - 为什么我的 pandas 数据框使用这么多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51541359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com