【问题标题】:What do low_memory and memory_map flags do in pd.read_csvpd.read_csv 中的 low_memory 和 memory_map 标志有什么作用
【发布时间】:2014-08-06 15:10:27
【问题描述】:

pandas.read_csv 的函数签名提供了以下选项:

read_csv(filepath_or_buffer, low_memory=True, memory_map=False, iterator=False, chunksize=None, ...)

我找不到任何有关 low_memorymemory_map 标志的文档。我对这些功能是否已经实现以及如果实现了它们如何工作感到困惑。

具体来说,

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

P.S.:相关模块的版本

pandas==0.14.0
scipy==0.14.0
numpy==1.8.1

【问题讨论】:

  • low_memory 应该记录在案(尽管它是一个较旧的选项,实际上并没有多大作用)。 memory_map 没有记录,因为它没有实现(也没有做任何事情)。所以你的问题的答案都是否定的。
  • 仅供参考,这些也不在公共文档字符串中,所以不确定你在哪里找。
  • 我会稍微修改一下,memory_map 是在技术上定义和测试的。没见过用过。试一试,然后报告。 (它不使用np.memmap,而只是在内存中保存有限数量的数据)。但我认为无论如何这是一个较旧/已弃用的选项。
  • 谢谢@Jeff!我做了一个help(pd.read_csv) 来获取文档字符串。感谢 github 参考。

标签: python python-2.7 pandas


【解决方案1】:

我将尝试总结这个问题的 cmets,并将我自己的研究添加到一个全面的答案中。

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

  2. memory_map 似乎没有使用 numpy 内存映射,据我所知,source code 这似乎是如何解析传入数据流的一个选项,而不是重要的东西您收到的数据帧是如何工作的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2011-09-01
    相关资源
    最近更新 更多