web-dev-qa-db-fra.com

L'objet 'module' n'a pas d'attribut 'DataFrame'

Pour le code suivant:

df = pd.DataFrame(np.random.Rand(12,2), columns=['Apples', 'Oranges'] )
df['Categories'] = pd.Series(list('AAAABBBBCCCC'))
pd.options.display.mpl_style = 'default'
df.boxplot(by='Categories')

Je reçois l'erreur:

'module' object has no attribute 'DataFrame'.

Des idées sur ce qui se passe et comment résoudre ce problème?

14
aerijman

Le code présenté ici ne montre pas cet écart, mais parfois je reste bloqué lorsque j'appelle dataframe en minuscule.

Le passage au camel-case (pd.DataFrame()) résout le problème.

34
Daniel Klaus

L'explication la plus probable est qu'un fichier appelé "pandas.py" se trouve dans le même répertoire que votre script ou qu'une autre variable appelée "pd" est utilisée dans votre programme.

13
Faraday88

Changez le nom du fichier si votre nom de fichier ressemble à pandas.py ou pd.py

11
raju

pour moi, le problème était que mon script s'appelait pandas.py dans le dossier pandas, ce qui a évidemment gâché mes importations. Peut-être que cela aide quelqu'un à l'avenir

4
Hans

Il peut y avoir deux causes:

  1. Il est sensible à la casse: DataFrame .... Dataframe, dataframe ne fonctionnera pas.

  2. Vous n'avez pas installé de pandas (pip install pandas) dans le chemin d'accès en python.

1

Assurez-vous que votre nom de fichier ne doit pas être panda.py ou pd.py. Assurez-vous également que panda est présent dans votre répertoire Lib/site-packages, sinon vous devez installer panda à l'aide de la ligne de commande ci-dessous:

pip install pandas

si vous travaillez avec un proxy, essayez d'appeler ci-dessous dans la commande Invite:

python.exe -m pip install pandas --proxy="YOUR_PROXY_IP:PORT"
1
Sandy

J'ai reçu une erreur similaire:

AttributeError: le module 'pandas' n'a pas d'attribut 'DataFrame'

La cause de mon erreur est que j'ai lancé le programme d'installation de pandas en tant que root et que mon utilisateur n'avait pas l'autorisation d'accéder au répertoire.

Ma solution était de courir:

Sudo chmod -R 755 /usr/local/lib/python3.6/site-packages

0
Jeff

J'ai rencontré un problème similaire, l'objet 'int' n'a pas d'attribut 'DataFrame' ,

C'est parce que j'ai utilisé par erreur pd en tant que variable dans mon code et que je lui ai assigné un entier, tout en utilisant le même pd que mon objet pandas dataframe en déclarant - import pandas as pd.

Je m'en suis rendu compte et j'ai changé ma variable pour autre chose et j'ai corrigé l'erreur.

0
SVK