2016-04-06 15 views
2

Schließlich muss ich Matrixoperationen zu meinem Dataset durchführen.Transform Pandas stapelte DataFrame zu Matrix

Was ich herausfinden möchte ist, wie man gestapelte Daten (speziell von SQL) und transformiert es in eine Matrix? (Es kann ein 2d numpy Array sein).

Angenommen, meine SQL-Abfrage, etwas von der Art zurück:

Name Data   Value 
a 2016-05-01 5 
b 2016-05-01 7 
c 2016-05-01 7 
a 2016-06-01 4 
b 2016-06-01 3 
c 2016-06-01 2 
d 2016-06-01 2 

Die Ausgabe, die ich suche ist

Data/Name a b c d 
2016-05-01 5 7 7 NaN 
2016-06-01 4 3 2 2 

Ich weiß, ich kann Schleife durch alle Werte, aber was ich bin Auf der Suche nach hier ist Leistung. Gibt es einen direkteren/schnellen/pythonischen Weg?

Antwort

1

Verwenden Sie die Funktion pivot für Ihren DataFrame.

Für eine gegebene df:

df 
Out[19]: 
    Name  Data Value 
0 a 2016-05-01  5 
1 b 2016-05-01  7 
2 c 2016-05-01  7 
3 a 2016-06-01  4 
4 b 2016-06-01  3 
5 c 2016-06-01  2 
6 d 2016-06-01  2 

Anruf pivot durch den Index einstellen und colums Sie von Ihrer ursprünglichen Datenrahmen verwenden möchten:

df.pivot('Data', 'Name') 
Out[20]: 
      Value    
Name   a b c d 
Data       
2016-05-01 5.0 7.0 7.0 NaN 
2016-06-01 4.0 3.0 2.0 2.0 
+0

Thanks so much! Kann ich einen Wert für fehlende Werte wählen? –

+0

'df.pivot ('Daten', 'Name'). Fillna (42.0)' – Boud

+0

atemberaubend! Vielen Dank –