【问题标题】:Missing optional dependency 'tables'. In pandas to_hdf缺少可选依赖项“表”。在熊猫 to_hdf
【发布时间】:2020-02-17 03:45:23
【问题描述】:
  • 以下代码给了我错误。
import pandas as pd
df = pd.DataFrame({'a' : [1,2,3]})
df.to_hdf('temp.h5', key='df', mode='w')

一些版本信息。

  • python 3.7.4
  • 熊猫 0.25.2
  • windows10

PS:你可以在replhttps://repl.it/复制这个。

更新

  • 我尝试过追随。
import tables

得到了这个错误:

ImportError: could not load any of ['hdf5.dll', 'hdf5dll.dll'],请确保它可以在系统路径中找到。

  • 看起来 pandas 没有为此提供准确的信息。它只是在实际存在时说缺少依赖。

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

【问题讨论】:

  • 您的操作系统是什么,python 可执行文件的位置,以及您使用的是什么 IDE(PyCharm、VSCode 等?)另外,您使用的是什么版本的 Pandas 和 Python?
  • 在 repl.it 上,一旦您将 tables==3.6.0 作为一个包添加到 repl 中,您的代码就会运行良好。
  • @DavideFiocco 现在看起来它正在处理 relt.it。我现在不在我的家庭工作站上。回到家后,我会检查并更新问题。
  • @James 版本信息有问题。我正在使用 jupyter notebook 运行代码。
  • 在我的 Linux 机器上,这个包似乎被称为 pytables。您能否检查安装pytables 是否可以解决您的问题?您的代码 sn-p 在安装了 pytables 后可以正常工作。

标签: python pandas pip hdf5 pytables


【解决方案1】:

对于 conda 用户:

conda install pytables

【讨论】:

  • 完美。将表和 numexpr 都安装到站点包中。
  • 对我来说,在执行__init__ 时从miniconda3\lib\site-packages\pandas\io\pytables.py 引发了相同的“缺失表”错误,这似乎表明pytables 模块已经安装。您的解决方案仍然解决了问题。看不懂。
【解决方案2】:
  • 问题在于tables
  • 当我使用以下命令使用 pip 将 tables 安装到本地用户目录时,它不起作用。
pip install --user tables
  • 运行import tables 将导致此错误。

    ImportError: could not load any of ['hdf5.dll', 'hdf5dll.dll'],请确保它可以在系统路径中找到

  • 对我有用的解决方案是卸载表。并将其安装到python的目录中。 (或者你的 python 安装在哪里)。 without --user option。根据您的 python 的位置,您可能需要管理员/root 访问权限。

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

【讨论】:

    【解决方案3】:

    我通过使用它来工作

    conda install snappy
    

    【讨论】:

    • 我不知道原因,但它对我有用。谢谢
    • 你知道为什么这个解决方案有效吗(至少对某些用户来说)?它也对我有用..(conda install pytables 没有帮助我)
    【解决方案4】:

    上述解决方案对我不起作用。也许是因为我使用 conda-forge 通道构建了个人环境,所以我取得了成功:

    conda install -c conda-forge pytables

    【讨论】:

      【解决方案5】:

      当使用pip install -U -r requirements.txt 刷新现有的 conda virtal env 时,我出现了这个问题。我解决了这个问题:

      1. conda env remove -n <env> # remove your virtual env.
      2. conda create -n <env> python==3.8 # create your virtual env again.
      3. pip install -U -r requirements.txt

      混合使用 conda 和 pip 包非常乏味,所以我只使用后者。

      【讨论】:

        猜你喜欢
        • 2021-07-24
        • 1970-01-01
        • 1970-01-01
        • 2016-12-27
        • 2019-01-23
        • 2017-12-25
        • 2015-04-18
        • 2020-03-24
        • 2012-07-12
        相关资源
        最近更新 更多