我在python 3.3上安装了pandas,编码如下:
import csv
import pandas
from pandas import DataFrame
csvdata = pandas.read_csv('datafile.csv')
df = DataFrame(csvdata)
它附带以下错误消息:
cannot import name hashtable
Traceback (most recent call last):
File "C:\Users\document\test4.py", line 5, in <module>
import pandas
File "C:\Python33\lib\site-packages\pandas\__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: cannot import name hashtable
有谁可以帮我弄清楚如何解决这个错误? Python和pandas已成功安装。
答案 0 :(得分:23)
Pandas捆绑在一起,可以使用conda轻松更新:
conda update pandas
它还捆绑了cython,scipy(通过pip安装很棘手),statsmodels,并为你管理这些包之间的依赖关系/关系。
值得强调的是,您不需要admin / sudo访问权限即可在计算机上安装它以安装Anaconda。
如果您没有使用Anaconda,install pandas的推荐方式是通过pip(在Mac和Windows上):
pip install pandas
在Linux上,你也可以在任何一个存储库中安装python-pandas
,但要注意你可能正在安装旧版本的pandas,理想情况下你应该使用最新的稳定版本。 < / p>
看起来你已经尝试了install from source,文档提到了这一点:
从git存储库安装需要最近安装Cython,因为cythonized C源不再被检入源代码控制。发布的源代码发布将包含构建的C文件。我建议通过
安装最新的Cythoneasy_install -U Cython
请注意,如果您在源目录中打开解释器,将无法导入pandas ,除非您在适当位置构建C扩展:
python setup.py build_ext --inplace
在没有编译hashtables.pyx
(以及其他一些cython文件)的情况下,pandas无法导入它们。这些是pandas所必需的(这解释了您的错误消息)。
注意:这个error message has been made more descriptive for 0.11.1 onwards,它会说没有构建C扩展。
答案 1 :(得分:3)
这里的pandas Python 3.3二进制文件http://www.lfd.uci.edu/~gohlke/pythonlibs/似乎还没有成功编译。我没有时间配置我的构建机器来构建和测试Python 3.3二进制文件,但我知道在其他平台上,Python 3.3可以正常工作。
答案 2 :(得分:1)
当我尝试安装pandas 0.13.1时,我也遇到了同样的问题。它安装但我无法导入它。
正如@danioyuan建议的那样,我使用easy_install安装了Cython,现在我可以导入pandas了。
答案 3 :(得分:1)
我已经尝试了上面的所有内容,对我没有用。
您可以通过以下方式更改pandas
的版本
pip install --user pandas==0.22
这仅对我有用:)
答案 4 :(得分:0)
我遇到了同样的问题。 我使用命令pip install pandas安装了pandas。
默认情况下,我的pip在python3.2的dist-packages中安装了pandas,我的默认python版本是2.7。 结果当我做python打开交互式shell并尝试做
import pandas
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/dist-packages/pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: cannot import name hashtable
解决了我的问题是:
python3.2
import pandas
请检查您是否使用了dist-packages包含pandas的相同Python版本。