2017-09-19 3 views
0

Ich möchte die Indexspalte eines Datenrahmens in ein Array konvertieren, aber ich bin mir nicht sicher, wie es geht. Ich habe bereits die zweite Spalte in Array konvertiert, aber aus irgendeinem Grund funktioniert es auch nicht in der ersten Spalte. Hier ist, wie ich versuche, die Index-Spalte zu konvertieren:Konvertieren Pandas-Index in numpy Array. Python

time = df1.as_matrix(columns = df1.columns[:,0]) 

Aber ich bekomme

too many indices for array 

Hier ist meine Datenrahmen

df1 
Out[13]: 
           0 
2015-11-19 23:59:54.500 -20.186533 
2015-11-19 23:59:54.625 -20.272575 
2015-11-19 23:59:54.750 -20.185249 
2015-11-19 23:59:54.875 -20.247126 
2015-11-19 23:59:55.000 -20.205975 
2015-11-19 23:59:55.125 -20.281376 
2015-11-19 23:59:55.250 -20.238962 
2015-11-19 23:59:55.375 -20.300100 
2015-11-19 23:59:55.500 -20.311625 
2015-11-19 23:59:55.625 -20.264126 
2015-11-19 23:59:55.750 -20.266762 
2015-11-19 23:59:55.875 -20.224825 
2015-11-19 23:59:56.000 -20.211288 
2015-11-19 23:59:56.125 -20.163288 
2015-11-19 23:59:56.250 -20.254587 
2015-11-19 23:59:56.375 -20.125738 
2015-11-19 23:59:56.500 -20.146749 
2015-11-19 23:59:56.625 -20.161976 
2015-11-19 23:59:56.750 -20.126276 
2015-11-19 23:59:56.875 -20.082863 
2015-11-19 23:59:57.000 -20.030237 
2015-11-19 23:59:57.125 -20.098312 
2015-11-19 23:59:57.250 -20.146214 
2015-11-19 23:59:57.375 -20.030476 
2015-11-19 23:59:57.500 -20.018661 
2015-11-19 23:59:57.625 -20.029900 
2015-11-19 23:59:57.750 -19.970963 
2015-11-19 23:59:57.875 -19.994637 
2015-11-19 23:59:58.000 -20.097612 
2015-11-19 23:59:58.125 -19.952700 
+0

Für das angegebene Beispiel 'Dataframe', können Sie versuchen,

+0

Das gibt mir leider nur die zweite Spalte. –

+0

Nur eine Anmerkung zu ['as_matrix'] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html) für zukünftige Referenzen:" Diese Methode wird aus Gründen der Abwärtskompatibilität bereitgestellt. Im Allgemeinen wird empfohlen, '.values' zu verwenden." –

Antwort

4

Sie nur df.index.values tun können:

df = pd.DataFrame(index=['a', 'b', 'c']) 

df.index.values 
# array(['a', 'b', 'c'], dtype=object) 
+0

Ich habe es gerade mit dieser Methode versucht, und ich habe eine numpy.datetime64 bekommen, was gut ist, weil ich weiß, wie man es von dort in datetime umrechnet. Vielen Dank für die Hilfe. –

+0

Kühl. Schön, dass es hilft. – Psidom

0

Versuchen Sie time = df1.as_matrix(columns=df1.columns[0:1]). Es sieht so aus, als ob Spalten ein 1-dimensionales Array sein sollten (naja, eigentlich ein Index), und das Geben von zwei Indizes zu einem 1-dimensionalen Array würde diesen Fehler ergeben.

+0

Das gibt leider nur die zweite Reihe. –

+0

Es sieht so aus, als ob Psidoms Antwort funktionieren sollte. –

+0

Hat es getan. Danke für deine Hilfe. –