2017-02-01 8 views
0

Ich habe ein Dataset, das einen DateTime-Index hat, und ich verwende PCA von Sklearn, um die Anzahl der Dimensionen zu reduzieren.Behalten Pandas-Index beim Anwenden von Sklearn

Die folgende Frage behebt mich - wird PCA die Reihenfolge der Punkte in meiner Serie beibehalten, damit ich den Index aus dem ursprünglichen Dataframe wiederverwenden kann?

df = pd.DataFrame(...) 
df2 = pca.fit_transform(df) 
df2.index = df.index 

Darüber hinaus, gibt es einen besseren (sichereren) Ansatz als dies tun?

+0

Vielleicht würde eine Neuindizierung helfen - 'pca.fit_transform (df) .reindex (index = df.index)'? –

+0

Und gibt es einen Unterschied in dem, was ich mache? – Marko

+0

Nicht wahrscheinlich, obwohl. Dies würde die unnötige Neuzuweisung der Indexachse beseitigen. –

Antwort

0

Obwohl die Indizes von PCA entfernt werden, aber die zugrunde liegende Reihenfolge der Zeilen bleibt (siehe Implementierung für die Transformationsfunktion von PCA *). So ist es sicher zu haben df2.index = df1.index

* fit_transform ist das gleiche wie passen und dann transformieren. Keiner von ihnen sortiert die Reihen neu.

Verwandte Themen