Python / Pandas HDF5 NameError问题

时间:2016-11-01 12:29:33

标签: python pandas hdf5 hdfstore

我写了两个脚本。

第一个脚本设计为仅运行一次,并创建一个名为 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文件中获取数据,并且:

  1. 将此数据放入新数据框 df ;

  2. storage.h5 导入数据框为 df2 ;

  3. 使用index union命令将 df df2 合并到 df3 ;

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

  5. 代码的相关部分如下:

    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行,in    hdf.put('d1',df3,format ='table',data_columns = True) NameError:未定义名称'hdf' 关闭剩余的打开文件:storage.h5 ... donestorage.h5 ...已完成

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

1 个答案:

答案 0 :(得分:1)

我无法评论,因为我没有足够的声誉,

但您是否有可能打开hd5商店并将其分配给变量

存储

当您尝试使用变量

输入新数据时

hdf?