Python,如何将非常大的文件读入数据帧

时间:2017-06-23 12:37:01

标签: python-3.x pandas memory dataframe bigdata

我有一个包含9行20亿行的数据集,1个包含整数,另一个包含字符串。总的csv文件大约是80 GB。我试图使用read_csv将数据加载到数据帧中,但是文件很大以便读入我的内存(我收到内存错误)。我有大约150 GB的可用内存,所以应该没问题。在论坛上做了一些挖掘后,我发现了这两种可能的解决方案:

  1. here他们提供了一个解决方案,可以通过块来执行此操作,但是这个过程需要很长时间,但它仍然会给我一个内存错误,因为数据文件比RAM中可用的150gb占用更多空间。
  2. df = pd.read_csv('path_to_file', iterator=True, chunksize=100000, dtype=int or string) dataframe = pd.concat(df, ignore_index=True)

    1. here他们提供了使用dtype为每列指定数据类型的解决方案。指定它们仍然会给我一个内存错误(将整数列指定为int,将其他列指定为字符串)。
    2. df = pd.read_csv('path_to_file', dtype=int or string)

      我也有来自同一数据文件的hdf文件,但是这个文件只包含整数。以上述两种方式读取此hdf文件(与csv文件大小相同)仍然会给出内存错误(超过150 gb的内存)。

      是否有快速且内存有效的方法将此数据加载到数据框中以进行处理?

      感谢您的帮助!

0 个答案:

没有答案