Python/Pandas HDF5 NameError 问题

Posted

技术标签:

【中文标题】Python/Pandas HDF5 NameError 问题【英文标题】:Python/Pandas HDF5 NameError issue 【发布时间】:2017-03-14 14:14:17 【问题描述】:

我写了两个脚本。

第一个脚本设计为只运行一次,并创建一个名为 df_empty 的大型空数据框,并使用以下命令将其保存到 HDF5 文件 storage.h5 中脚本中的以下代码:

from pandas import HDFStore
hdf = HDFStore('storage.h5')
hdf.put('d1', df_empty, format='table', data_columns=True)

这很好用。

我的下一个脚本设计为每 30 分钟运行一次,并从每半小时生成的 CSV 文件中获取数据,并且:

    将此数据放入一个新的数据框df;

    storage.h5 导入数据帧为 df2;

    使用索引联合命令将dfdf2合并到df3中;

    将新数据帧保存回 storage.h5,有效地覆盖之前的文件。

相关部分代码如下:

from pandas import HDFStore
store = pd.HDFStore('storage.h5')
df2 = pd.DataFrame(store['d1'])
df3 = df.reindex(index = df2.index.union(df.index))
hdf.put('d1', df3, format='table', data_columns=True)

如果我在 Jupyter Notebook 中按顺序运行这两个脚本(我已经安装了最新版本的 Anaconda 并在 Windows 7 机器上运行它),这会很好。

但是,当我从命令提示符运行时,我遇到了问题。第一个脚本运行没有错误。但是,第二个脚本抛出以下错误:

Traceback(最近一次通话最后一次): 文件“myfile.py”,第 64 行,在 hdf.put('d1', df3, format='table', data_columns=True) NameError:未定义名称“hdf” 关闭剩余打开的文件:storage.h5...donestorage.h5...done

有人对我可能做错了什么有任何建议吗?

【问题讨论】:

【参考方案1】:

我不能评论,因为我没有足够的声誉,

但是你有没有可能打开 hd5 存储并将其分配给变量

商店

当您尝试使用变量输入新数据时

高清?

【讨论】:

是的!谢谢你。发现得好。这似乎成功了。

以上是关于Python/Pandas HDF5 NameError 问题的主要内容,如果未能解决你的问题,请参考以下文章

警告! *** HDF5库版本不匹配错误*** python pandas windows

Python/Pandas HDF5 NameError 问题

如何在 hdf5 中有效地保存 python pandas 数据帧并将其作为 R 中的数据帧打开?

Python读取索引不在列表中的HDF5行

如何在现有 HDF5 文件上创建组? (HDF5)

多个 HDF5 文件的 HDF5 数据层定义