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 pandas
en numpy
om
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)