在pandas

时间:2016-09-07 14:35:41

标签: python django pandas amazon-s3 hdf5

我在S3上存储以HDF格式转储的pandas数据帧。我几乎陷入困境,因为我无法将文件指针,URL,s3 URL或StringIO对象传递给read_hdf。如果我理解正确,文件必须存在于文件系统中。

来源:https://github.com/pydata/pandas/blob/master/pandas/io/pytables.py#L315

看起来它是针对CSV实现的,而不是针对HDF实现的。有没有更好的方法来打开这些HDF文件而不是将它们复制到文件系统?

为了记录,这些HDF文件正在Web服务器上处理,这就是我不想要本地副本的原因。

如果我需要坚持使用本地文件:有没有办法在文件系统上模拟该文件(使用真实路径),在读取完成后可以将其销毁?

我正在使用Python 2.7和Django 1.9以及pandas 0.18.1。

1 个答案:

答案 0 :(得分:1)

read_hdf documentation中所述,较新版本的python允许直接从S3读取hdf5。如果可以的话,也许您应该升级熊猫。当然,这假定您已设置读取这些文件的正确访问权限:使用credentials文件或使用公共ACL。

关于您的最后评论,我不确定为什么为什么要在每个df中存储多个HDF5与使用HDF5是矛盾的。 Pickle should be much slower than HDF5尽管joblib.dump可能会对此有所改善。