我写了两个脚本。

第一个脚本设计为只能运行一次,并创建一个名为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;
使用index union命令将df和df2合并到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计算机上运行该脚本)。

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

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

有人对我可能做错了什么吗?

最佳答案

我无法发表评论,因为我的声誉不高,

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

商店

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

hdf吗?

关于python - Python/Pandas HDF5 NameError问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40360088/

10-12 18:22