简短的问题
当 Pandas 在 HDFStore 上工作时(例如: .mean() 或 .apply() ),它是将完整数据作为 DataFrame 加载到内存中,还是作为 Serie 逐记录处理?
详细描述
我要处理大型数据文件,我可以指定数据文件的输出格式。
我打算使用 Pandas 来处理数据,并且我想设置最佳格式,以最大限度地提高性能。
我已经看到 panda.read_table() 已经走了很长一段路,但它仍然至少需要与我们要读取以转换为 DataFrame 的原始文件大小一样多的内存(实际上至少是内存的两倍) . 这可能适用于最大 1 GB 的文件,但大于?这可能很难,尤其是在在线共享机器上。
但是,我看到现在 Pandas 似乎支持使用 pytables 的 HDF 表。
我的问题是:当我们对整个 HDF 表进行操作时,Pandas 如何管理内存?例如 .mean() 或 .apply()。它是首先将整个表加载到 DataFrame 中,还是直接从 HDF 文件中处理函数而不存储在内存中?
附带问题:hdf5 格式在磁盘使用上是否紧凑?我的意思是,它是像 xml 一样冗长还是更像 JSON?(我知道有索引和东西,但我在这里对数据的简单描述感兴趣)