Wie kann ich fehlende Werte auf Numpy -Array, die von Train_test_split von pandas.dataframe erstellt wurden, unterstellen?

datascience.stackexchange https://datascience.stackexchange.com/questions/927

Frage

Ich arbeite mit vielen NA -Werten mit Sklearn und Pandas.Dataframe am Datensatz. Ich habe verschiedene Imputationsstrategien für verschiedene Spalten der auf Datenrahmen basierenden Spaltennamen implementiert. Zum Beispiel nas predictor 'var1' ich spitze mit 0 und für 'var2' mit dem Mittelwert.

Wenn ich versuche, mein Modell mit train_test_split zu validieren, gibt es mir ein NPArray zurück, das keine Spaltennamen hat. Wie kann ich fehlende Werte in diesem NPARRAY unterstellen?

PS Ich schreibe keine fehlenden Werte im ursprünglichen Datensatz vor, bevor ich absichtlich aufgeteilt bin, sodass ich die Test- und Validierungssätze separat behalte.

War es hilfreich?

Lösung

Können Sie Ihr NPArray einfach von Train_test_split zurück in einen Pandas -Datenrahmen werfen, damit Sie die gleiche Strategie durchführen können. Dies ist sehr häufig, was ich beim Umgang mit Pandas und Scikit tue. Zum Beispiel,

 a = train_test_split
 new_df = pd.DataFrame(a)

Andere Tipps

Aus dem im Kommentar erwähnten Link sollten die Zug- und Testsätze in Form eines Datenrahmens erfolgen, wenn Sie der ersten Erklärung befolgt werden.

In diesem Fall könnten Sie so etwas tun:

df[variable] = df[variable].fillna(df[variable].median())

Sie haben Optionen, um die N/A -Werte zu füllen, und überprüfen Sie den Link.http://pandas.pydata.org/pandas-docs/stable/missing_data.html

Wenn Sie der zweiten Erklärung unter Verwendung von Sklearns Kreuzvalidierung befolgt haben, können Sie den Vorschlag von Mike1886 implementieren, die Arrays in Datenrahmen umzuwandeln und dann die Option Fillna zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top