我将使用非常大的数据文件(许多千兆字节)。我将不得不阅读这些文件并写入这些文件。因此,我将无法依靠RAM来存储数据,并且需要从磁盘读取和写入文件。
我熟悉pandas库提供的read_csv
和to_csv
选项。但是,我不确定read csv
函数是否读取文件然后将其存储在RAM上或直接从磁盘读取文件。
使用pandas从磁盘读取和写入文件的最佳方法是什么?
答案 0 :(得分:2)
pandas.read_csv
会将整个文件读入内存。如果您只需要特定列,则可以使用usecols
参数指定列和pandas的子集仅加载这些列。
由于您的文件不适合内存,您可以使用split将文件拆分到磁盘上,并对块执行所有操作。
一个简单的替代方法是使用dask.dataframe库中dask的read_csv
。
来自文档:
A Dask DataFrame is a large parallel dataframe composed of many smaller Pandas dataframes, split along the index. These pandas dataframes may live on disk for larger-than-memory computing on a single machine, or on many different machines in a cluster.