35
votes

Erreur de pandas pour la création d'une dataframe vide

J'ai essayé de créer un dataframe mannequin,

colonnen_names = ["a", "b", "c"]

df = pd.dataframe (Columns = Column_Names)

J'obtiens l'erreur suivante, cela ne se produisait pas auparavant, est-ce que je manque quelque chose. Cela ne se produit que sur la création d'un dataframe vide, est-ce un bug récemment introduit.

  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 411, in __init__
    mgr = init_dict(data, index, columns, dtype=dtype)
  File "/usr/local/lib/python3.7/site-packages/pandas/core/internals/construction.py", line 242, in init_dict
    val = construct_1d_arraylike_from_scalar(np.nan, len(index), nan_dtype)
  File "/usr/local/lib/python3.7/site-packages/pandas/core/dtypes/cast.py", line 1221, in construct_1d_arraylike_from_scalar
    dtype = dtype.dtype
AttributeError: type object 'object' has no attribute 'dtype'

 Exemple de code

p> >


9 commentaires

Pouvez-vous fournir du code complet?


Que se passe-t-il d'autre dans votre code?


C'est tout ce que j'essaie, dans le terminal @ epsi95


@ gutie1998 C'est tout ce que j'essaie, dans le terminal


ressemble à stackoverflow.com/ Questions / 50197832 /…


@Vaishali J'ai vérifié cela, la question est différente


Quelle version de Pandas utilisez-vous? Je ne suis pas en mesure de reproduire l'erreur dans Pandas 1.1.4.


@ MOSC9575 pandas == 0,25,3


Peut-être que cela résout votre problème lorsque vous essayez de mettre à jour vos pandas.


4 Réponses :


36
votes

Cela se produisait avec pandas == 0.25.3 Mis à jour au dernier pandas == 1.2.1

Mise à jour: Cela était dû à un package Numpy 1.20.0 , J'ai donc verrouillé le package Numpy à la place, numpy == 1.19.5 , pandas == 0.25.3


0 commentaires

4
votes

se produit en raison de numpy == 1.20.0 , et résolvez avec numpy == 1.19.5 . La version Pandas peut ne pas être pertinente, dans mon cas, pandas == 1.0.4


0 commentaires

2
votes

La version pandas était le problème dans mon cas.

Cela devrait fonctionner si vous passez de

pandas == 0,25,3 en pandas == 1.2.3


0 commentaires

26
votes

Si, pour une raison quelconque, vous ne pouvez pas mettre à niveau Numpy / Pandas, une autre façon de résoudre ce problème est de spécifier le DTYPE lors de la création du DataFrame. Par exemple:

column_names = ["a", "b", "c"]
df = pd.DataFrame(columns = column_names, dtype=object)


0 commentaires