web-dev-qa-db-fra.com

Importation pandas affiche ImportError: impossible d'importer la table de hachage de nom

J'ai installé pandas sur python 3.3, et codé comme ceci:

import csv
import pandas
from pandas import DataFrame

csvdata = pandas.read_csv('datafile.csv')
df = DataFrame(csvdata)

Il est accompagné du message d'erreur suivant:

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

Quelqu'un pourrait-il m'aider à comprendre comment résoudre cette erreur? Python et pandas ont été installés avec succès.

21
sky404

Mise à jour: je recommande maintenant d'installer la pile scientifique python en utilisant Anaconda .

Pandas est fourni et peut facilement être mis à jour à l'aide de conda:

conda update pandas

Il est également livré avec cython, scipy (qui est difficile à installer via pip), des modèles de statistiques et gère pour vous les dépendances/répétitions entre ces packages.

Il convient de souligner que vous n'avez pas besoin d'un accès administrateur/Sudo pour l'installer sur la machine pour installer Anaconda.


Si vous n'utilisez pas Anaconda, la méthode recommandée pour installer pandas est via pip (sur Mac et Windows):

pip install pandas

Sous Linux, vous pouvez également installer avec python-pandas dans n'importe quel référentiel, mais sachez que vous installez peut-être une ancienne version de pandas, vous devriez idéalement utiliser la dernière version stable.


Il semble que vous ayez essayé de installer à partir de la source , dont les documents mentionnent:

L'installation à partir du référentiel git nécessite une installation récente de Cython car les sources C cythonisées ne sont plus archivées dans le contrôle de code source . Les distributions sources publiées contiendront les fichiers C construits. Je recommande d'installer la dernière version de Cython via easy_install -U Cython

Notez que vous ne pourrez pas importer de pandas si vous ouvrez un interpréteur dans le répertoire source sauf si vous construisez le Extensions C en place :

python setup.py build_ext --inplace

Sans compilation hashtables.pyx (et quelques autres fichiers cython), pandas ne peut pas les importer. Ils sont requis pour pandas (ce qui explique votre message d'erreur) ).

Remarque: ceci le message d'erreur a été rendu plus descriptif à partir de 0.11.1 , il dira que les extensions C n'ont pas été construites.

23
Andy Hayden

Le binaire pandas Python 3.3 ici http://www.lfd.uci.edu/~gohlke/pythonlibs/ ne semble pas avoir été compilé avec succès. Je n'ai pas eu le temps de configurer ma machine de génération pour construire et tester Python 3.3 binaires mais je sais que les choses fonctionnent sur Python 3.3 sur les autres plates-formes.

3
Wes McKinney

J'ai également rencontré le même problème lorsque j'ai essayé d'installer pandas 0.13.1. Il s'est installé mais je n'ai pas pu l'importer.

Comme le suggère @danioyuan, j'ai installé Cython en utilisant easy_install et maintenant je peux importer des pandas.

1
KarthikS

J'ai rencontré le même problème. J'ai installé pandas en utilisant la commande pip install pandas.

Par défaut, mon pip a installé pandas dans les packages dist de python3.2 et ma version par défaut python était 2.7. Par conséquent, quand je l'ai fait python pour ouvrir le shell interactif et essayer de le faire

 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

Ce qui a résolu mon problème était:

 python3.2
 import pandas

Veuillez vérifier que vous utilisez la même version Python dont les dist-packages contiennent des pandas.

0
arpiagar