pandas DataFrame geen numerieke gegevens om te plotten fout

Ik heb een klein DataFrame dat ik wil plotten met panda’s.

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

Ik probeer nog steeds te leren plotten vanuit panda’s. Ik wil een plot In het bovenstaande voorbeeld als ik zeg .

df.plot()

Ik krijg de vreemdste foutmelding.

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

Terwijl ik begrijp dat het DataFrame met zijn zeer scheve waarden een zeer oninteressante plot maakt. Ik vraag me af waarom de foutmelding klaagt dat er geen numerieke gegevens zijn om te plotten.


Antwoord 1, autoriteit 100%

Probeer het volgende voordat u gaat plotten:

df=df.astype(float)

Antwoord 2, autoriteit 13%

Om dit op te lossen, moet u de specifieke kolom of kolommen die u wilt converteren
gebruiken voor numeriek. Laat me eerst een eenvoudig dataframe maken met pandasen numpyom
begrijp het beter.

#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

Antwoord 3, autoriteit 5%

Geïnspireerd door alex314159, als je andere gegevens hebt dan zwevend in dezelfde tabel

df["YourColumnNameHere"]=df["YourColumnNameHere"].astype(float)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

nineteen − twelve =

Other episodes