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.
Essayez ce qui suit avant de tracer:
df=df.astype(float)
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