web-dev-qa-db-de.com

pandas DataFrame-Fehler "Keine numerischen Daten zum Plotten"

Ich habe einen kleinen DataFrame, den ich mit Pandas plotten möchte.

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

Ich versuche immer noch, das Plotten von Pandas zu lernen. Ich möchte eine Handlung im obigen Beispiel, wenn ich sage.

df.plot()

Ich bekomme den seltsamsten Fehler.

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

Ich verstehe zwar, dass der DataFrame mit seinen sehr einseitigen Werten eine sehr uninteressante Darstellung darstellt. Ich frage mich, warum in der Fehlermeldung keine numerischen Daten angezeigt werden, die aufgezeichnet werden sollen.

31
harijay

Versuchen Sie vor dem Plotten Folgendes: 

df=df.astype(float)
63
alex314159

Um dieses Problem zu lösen, müssen Sie die bestimmte Spalte oder die gewünschten Spalten konvertieren zu numerisch verwenden. Lassen Sie mich zunächst einen einfachen Datenrahmen mit pandas und numpy bis .__ erstellen. verstehe es besser.

#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