在 pandas 中使用 to_hdf 函数时出现了“缺少可选依赖项'tables'”的错误。

39
  • 以下代码出现了错误。
  • 以下代码出现了错误。
  • import pandas as pd
    df = pd.DataFrame({'a' : [1,2,3]})
    df.to_hdf('temp.h5', key='df', mode='w')
    
    • 这个让我报错了。

      缺少可选依赖项“tables”。请使用pip或conda安装表格。

    • 我已经尝试过ImportError HDFStore requires PyTables No module named tables,但仍然出现相同的错误。

    • 当我读取hdf文件时,我遇到了相同的错误。而且tables已经为我的Python安装好了。

    一些版本信息。

    • python 3.7.4
    • pandas 0.25.2
    • windows10

    PS:您可以在repl https://repl.it/中重现此问题。

    更新:

    • 我试着运行以下内容。

    import tables
    

    并获得了以下错误:

    ImportError: 无法加载任何一个 ['hdf5.dll', 'hdf5dll.dll'],请确保其可以在系统路径中找到。

    • 看起来pandas没有提供准确的消息。 它只是说缺少依赖项,实际上它已经存在。

    • 如果有人知道如何解决这个问题,那将会有所帮助。


    你的操作系统是什么?Python可执行文件的位置在哪里?你使用的是哪个IDE(PyCharm、VSCode等)?此外,你使用的Pandas和Python版本是什么? - James
    在repl.it上,只要您将tables==3.6.0作为包添加到repl中,您的代码就可以正常运行。 - Davide Fiocco
    @DavideFiocco 看起来现在它正在 relt.it 上运行。我现在不在我的工作站上。一旦回到家,我会检查并更新问题。 - Poojan
    @James的版本信息在问题中提到。我正在使用Jupyter笔记本运行代码。 - Poojan
    在我的Linux机器上,该软件包似乎被称为“pytables”。您能否检查安装“pytables”是否解决了您的问题?如果安装了“pytables”,则您的代码片段可以正常工作。 - Sergey Bushmanov
    显示剩余2条评论
    8个回答

    34

    对于conda用户:

    conda install pytables
    

    完美。将表和numexpr都安装到site-packages中。 - Peter
    对我来说,在执行tables = import_optional_dependency("tables")时,从miniconda3\lib\site-packages\pandas\io\pytables.py中引发了相同的“缺少表”错误,这似乎表明已经安装了pytables模块。尽管如此,您的解决方案仍然解决了问题。我无法理解。 - mins
    1
    我遇到了和@mins一样的问题,但是conda无法解决。使用pip install tables解决了这个问题。 - pedrosaurio

    28
    • 问题出在tables上。
    • 当我使用以下命令使用pip将tables安装到本地用户目录时,它无法正常工作。
    pip install --user tables
    
    • 运行import tables会出现以下错误:

      ImportError: 无法加载任何一个 ['hdf5.dll', 'hdf5dll.dll'],请确保其可以在系统路径中找到

    • 对我而言可行的解决方法是卸载tables,然后将其安装到Python所在的目录(或者你安装Python的位置),使用without --user option。根据你的Python安装位置,你可能需要管理员/超级用户权限。

    • 对我而言,我的Python路径是C:\Program Files\Python37-64\python.exe,在c:\program files\python37-64\lib\site-packages\下安装成功了。
    • 希望这能帮到你。我不知道为什么在用户目录中安装tables不起作用。如果有人知道原因,请在此处发布。

    5

    我使用这个方法使它能够工作:

    conda install snappy
    

    我不知道原因,但对我来说有效。谢谢 - Kevin Lee
    你知道为什么这个解决方案有效(至少对一些用户有效)吗?它对我也起作用了。(conda install pytables 对我没有帮助) - Nerxis

    3
    使用表格3.6.1解决了我的依赖问题。
    pip install tables==3.6.1
    

    2
    我使用以下命令成功解决了这个问题:
    pip install --upgrade tables
    

    希望这对你有用!

    2
    上面的解决方案对我没有用。也许是因为我使用 conda-forge 渠道构建了单独的环境,我成功地通过以下方法解决了这个问题:
    conda install -c conda-forge pytables
    

    0

    当我使用pip install -U -r requirements.txt刷新现有的conda虚拟环境时,出现了这个问题。我解决了以下问题:

    1. conda env remove -n <env> # 删除您的虚拟环境。
    2. conda create -n <env> python==3.8 # 再次创建您的虚拟环境。
    3. pip install -U -r requirements.txt

    维护conda和pip软件包的混合使用非常繁琐,因此我只使用后者。


    0

    在使用苹果M2处理器的MacOS Ventura时,上述方法对我无效。最终对我有效的是:

    env HDF5_DIR=/opt/homebrew/opt/hdf5 python3 -m pip install tables
    

    在这里,/opt/homebrew/opt/hdf5hdf5 的安装位置。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接