2016-10-06 4 views
0

Ich habe einen kategorischen Index von Windrichtungen in einem Pandas Datenrahmen.Wie kann ich einen kategorischen Index in einen Float umwandeln?

print (self.Groups.index) 

CategoricalIndex([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], 
categories=[22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], 
ordered=True, name='Dir', dtype='category') 

Ich versuche diesen Index zu verwenden, um eine Windrose z.

ax.bar(self.Groups.index,self.Groups['wind_speed']) 

aber ich muss den Index in Radiant umwandeln, damit es richtig auf einem polaren Plot angezeigt wird.

Gibt es eine Möglichkeit den kategorischen Index mit einem Schwimmer zu konvertieren?

Antwort

1

Sie die to_numeric Funktion können Sie den Index konvertieren. Es gibt mehr Kontrolle über das erwartete Verhalten im Falle eines Fehlers.

# Test data 
index = pd.CategoricalIndex([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], 
categories=[22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], 
ordered=True, name='Dir', dtype='category') 
index 
df = DataFrame([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], index=index) 

# Converting the index 
df.index = pd.to_numeric(df.index) 
print(df.index) 

# Float64Index([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], dtype='float64', name='Dir') 
+0

Ich hatte dies zunächst versucht und es schien nicht zu funktionieren, aber stellt sich heraus, ich war Pandas laufen 0.16.2 Ich musste auf 0.19.0 aktualisieren und es funktioniert jetzt gut. Vielen Dank! –

1

Verwenden astype die Umwandlung durchzuführen:

self.Groups.index = self.Groups.index.astype('float') 
Verwandte Themen