python - 在 pandas 中访问存储在 s3 上的 HDF 文件

标签 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 一起使用。

最佳答案

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

关于您的最后评论,我不确定为什么每个 df 存储几个 HDF5 必然与 HDF5 的使用相矛盾。 Pickle should be much slower than HDF5虽然 joblib.dump 可能会对此有所改善。

关于python - 在 pandas 中访问存储在 s3 上的 HDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39372806/

相关文章:

python - 使用 Python 将字符串列合并到一组列表

python - Python 中的持久内存存储

python - 将方法限制为仅在实例上使用是否存在危险?

python - AES 加密 Golang 和 Python

python - 无法使用reverse_lazy链接静态网页

python - 如何使用 Pandas 获得增加值的平均值?

python - 通过 POST 请求发送二进制图像

database - Heroku 和 Django 组合中的 Postgresql 更改与共享数据库

python - hstore或json数据的Django数字比较?

python - Pandas :asfreq 与时间序列的奇怪行为