Python 内存和磁盘上的文件大小不同
我刚刚使用Python 内存和磁盘上的文件大小不同,python,pandas,Python,Pandas,我刚刚使用pandas函数编写了一个csv文件。我可以看到磁盘上这个文件的大小是13GB。我想使用pd.read\u csv将此文件读回pandasdataframe。在中读取此文件时,我监视服务器的内存使用情况。结果表明,在中读取此文件所消耗的内存为30GB+并且该文件从未被读取。我的jupyter笔记本的内核死了,我必须再次启动这个过程 我的问题是,为什么会发生这种行为?写和读文件是一段非常简单的代码,为什么空间要求不同呢?最后,如何读取此文件?在加载时使用块来最小化内存使用 import
pandas
函数编写了一个csv
文件。我可以看到磁盘上这个文件的大小是13GB。我想使用pd.read\u csv
将此文件读回pandas
dataframe
。在中读取此文件时,我监视服务器的内存使用情况。结果表明,在中读取此文件所消耗的内存为30GB+并且该文件从未被读取。我的jupyter笔记本的内核死了,我必须再次启动这个过程
我的问题是,为什么会发生这种行为?写和读文件是一段非常简单的代码,为什么空间要求不同呢?最后,如何读取此文件?在加载时使用块来最小化内存使用
import pandas as pd
chunksize = 10 ** 8
chunks=pd.read_csv(filename, chunksize=chunksize):
df=pd.concat(chunks, ignore_index=True)
如果这不起作用,这将调用for循环内的垃圾收集器,可能会有一些轻微的性能改进
import pandas as pd
import gc
chunksize = 10 ** 8
dfs = []
for chunk in pd.read_csv(filename, chunksize=chunksize):
dfs.append(chunk)
gc.collect()
final_df = pd.concat(dfs)
as问题的可能重复也表明了很多问题。我得到错误NameError:未定义名称“进程”
。我相信它需要导入。因此我使用了完全相同的代码,并对chunksize的值进行了一些调整,我仍然遇到MemoryError
。这是我的代码:chunks=pd.read\u csv('filename.csv',chunksize=10000)f=pd.DataFrame()%time df=pd.concat(chunks,ignore\u index=True)