使用 Pandas HDFStore 以只读模式打开文件
Posted
技术标签:
【中文标题】使用 Pandas HDFStore 以只读模式打开文件【英文标题】:use Pandas HDFStore to open file in read only mode 【发布时间】:2018-07-27 15:08:19 【问题描述】:我需要 Pandas 版本之间的兼容性,所以 pickle 还不够,我存储了一堆这样的数据帧:
import pandas as pd
hdf = pd.HDFStore('storage.h5')
hdf.put('mydata', df_mydata)
...然后像这样把它们带回来:
df_mydata = hdf.get('df_mydata')
问题是,在Python 中,您通常可以像这样以只读方式打开文件:
f = open('workfile', 'r')
我保存了数据框以供本地使用,因为它需要很长时间,并且会迫使服务器将它们从 SQL 中提取出来。如何打开这些.h5
文件以免意外更改它们?
【问题讨论】:
这可能听起来很讽刺,但我是真诚的。如果您不想更改文件,请不要编写可以更改的代码。或者您可以复制文件并打开副本? 我相信自己不会编写会改变它的代码吗?.. Linux 有读写执行权限,Python 有这种只读模式,但也许它们都是多余的特性,比如安全带.. docs中的mode='r' Ignored if path_or_buf is a pd.HDFStore是什么意思?read_hdf
是否总是引用 pd.HDFStore 对象?
我不知道@Evan,但它确实违反了 KISS 原则,并且让你对mode
的论点缺乏信心。几周后我发现自己只需要再次阅读,只需输入mode='r'
并希望它不会忽略它。
【参考方案1】:
试试:
hdf = pd.HDFStore('storage.h5', 'r')
这个类来自 pytables。你可以在这里阅读文档:pytables
【讨论】:
以上是关于使用 Pandas HDFStore 以只读模式打开文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pandas 从大型 HDFStore 表中提高查询性能
pandas.HDFStore:如何修改现有商店的“data_columns”?我想为不在数据列中的列添加索引