web-dev-qa-db-fra.com

pandas DataFrame "erreur" pas de données numériques à tracer "

J'ai un petit DataFrame que je veux tracer en utilisant des pandas.

    2   3
0   1300    1000
1   242751149   199446827
2   237712649   194704827
3   16.2    23.0

J'essaie encore d'apprendre à tracer au sein de pandas. Je veux un complot Dans l'exemple ci-dessus quand je dis.

df.plot()

J'ai l'erreur la plus étrange.

Library/Python/2.7/site-packages/pandas-0.16.2-py2.7-macosx-10.10-intel.Egg/pandas/tools/plotting.pyc in _compute_plot_data(self)
   1015         if is_empty:
   1016             raise TypeError('Empty {0!r}: no numeric data to '
-> 1017                             'plot'.format(numeric_data.__class__.__name__))
   1018 
   1019         self.data = numeric_data

TypeError: Empty 'DataFrame': no numeric data to plot

Bien que je comprenne que le DataFrame avec ses valeurs très inégales fait un complot très peu intéressant. Je me demande pourquoi le message d'erreur se plaint de l'absence de données numériques à tracer.

31
harijay

Essayez ce qui suit avant de tracer: 

df=df.astype(float)
63
alex314159

Pour résoudre ce problème, vous devez convertir la ou les colonnes particulières que vous souhaitez utiliser pour numérique. Premièrement, laissez-moi créer un cadre de données simple avec pandas et numpy à Comprenez-le mieux.

#creating the dataframe

import pandas as pd
import numpy as np
details=[['kofi',30,'male',1.5],['AMA',43,'female',2.5]]
pf=pd.DataFrame(np.array(details),[0,1],['name','age','sex','id'])

pf  #here i am calling the dataframe

   name age     sex   id
0  kofi  30    male  1.5
1   AMA  43  female  2.5

#to make your plot work you need to convert the columns that have numbers into numeric
as seen below 

pf.id=pd.to_numeric(pf.id)
pf.age=pd.to_numeric(pf.age)

pf.plot.scatter(x='id',y='age')

#This should work perfectly
1
chrys111