low_memory和memory_map标志在pd.read_csv中做了什​​么

goo*_*ofd 10 python python-2.7 pandas

函数签名pandas.read_csv包括以下选项:

read_csv(filepath_or_buffer, low_memory=True, memory_map=False, iterator=False, chunksize=None, ...)
Run Code Online (Sandbox Code Playgroud)

我找不到任何文件low_memorymemory_map标志.我对这些功能是否已实现感到困惑,如果是这样,它们如何工作.

特别,

  1. memory_map:如果实现它是否使用np.memmap,如果是,它将各个列存储为memmap或行.
  2. low_memory:它是否指定了cache存储在内存中的内容?
  3. 我们可以将现有转换DataFramememmapped DataFrame

PS:相关模块的版本

pandas==0.14.0
scipy==0.14.0
numpy==1.8.1
Run Code Online (Sandbox Code Playgroud)

fir*_*ynx 4

我将尝试总结对此问题的评论,并将我自己的研究添加到一个综合答案中。

  1. low_memory选项有点被贬低,因为它实际上不再做任何事情(来源)。

  2. memory_map据我从源代码中可以看出,似乎没有使用 numpy 内存映射这似乎是如何解析传入数据流的一个选项,而不是您接收的数据帧如何工作的重要内容。

  3. 由于我在第 2 点中的假设是这仅用于解析,因此这个问题有点无关紧要。