So behalten Sie die Spaltenscheiben des Datenrahmens nach der Vorverarbeitung in Scikit-LearnPython

Python-Programme
Anonymous
 So behalten Sie die Spaltenscheiben des Datenrahmens nach der Vorverarbeitung in Scikit-Learn

Post by Anonymous »

Ich habe einen Pandas -Datenrahmen, der einige Zeilen und Spalten enthält. Jede Spalte hat einen Header. Solange ich in Pandas weiterhin Datenmanipulationsoperationen durchnehme, bleiben meine variablen Headers erhalten. Aber wenn ich einige Daten vorverarbeitung von Sci-Kit-Learn Lib ausprobieren möchte, verliere ich am Ende alle meine Header und der Rahmen wird in nur eine Matrix von Zahlen konvertiert. < /p>

Ich verstehe, warum es passiert, weil Scikit-Learn ein numpy nDarray als Ausgabe angibt. Und Numpy ndarray ist nur Matrix würde keine Spaltennamen haben. < /p>

Aber hier ist das Ding. Wenn ich ein Modell in meinem Datensatz erstelle, auch nach der vorliegenden Daten vorverarbeitung und ein Modell ausprobiere, muss ich möglicherweise weitere Datenmanipulationsaufgaben ausführen, um ein anderes Modell für eine bessere Passform auszuführen. Ohne in der Lage zu sein, auf den Spaltenheader zugreifen zu können, macht es die Manipulation von Daten schwierig, da ich möglicherweise nicht weiß, welcher Index einer bestimmten Variablen ist, aber es ist einfacher, sich durch den variablen Namen zu erinnern oder sogar nach DF.Columns zu suchen. < /p>

Wie kann man das überwinden? < /p>

Edit1: Bearbeiten mit Beispieldaten -Snapshot. < /p>

Pclass Sex Age SibSp Parch Fare Embarked
0 3 0 22 1 0 7.2500 1
1 1 1 38 1 0 71.2833 2
2 3 1 26 0 0 7.9250 1
3 1 1 35 1 0 53.1000 1
4 3 0 35 0 0 8.0500 1
5 3 0 NaN 0 0 8.4583 3
6 1 0 54 0 0 51.8625 1
7 3 0 2 3 1 21.0750 1
8 3 1 27 0 2 11.1333 1
9 2 1 14 1 0 30.0708 2
10 3 1 4 1 1 16.7000 1
11 1 1 58 0 0 26.5500 1
12 3 0 20 0 0 8.0500 1
13 3 0 39 1 5 31.2750 1
14 3 1 14 0 0 7.8542 1
15 2 1 55 0 0 16.0000 1
< /code>

Das obige ist im Grunde genommen der Pandas -Datenrahmen. Wenn ich dies nun auf diesem Datenrahmen mache, werden die Spaltenüberschriften abgezogen. < /p>

from sklearn import preprocessing
X_imputed=preprocessing.Imputer().fit_transform(X_train)
X_imputed
< /code>

Neue Daten sind aus Numpy -Array und daher werden die Spaltennamen entzogen. < /p>

array([[ 3. , 0. , 22. , ..., 0. ,
7.25 , 1. ],
[ 1. , 1. , 38. , ..., 0. ,
71.2833 , 2. ],
[ 3. , 1. , 26. , ..., 0. ,
7.925 , 1. ],
...,
[ 3. , 1. , 29.69911765, ..., 2. ,
23.45 , 1. ],
[ 1. , 0. , 26. , ..., 0. ,
30. , 2. ],
[ 3. , 0. , 32. , ..., 0. ,
7.75 , 3. ]])
< /code>

Ich möchte also die Spaltennamen beibehalten, wenn ich einige Datenmanipulation auf meinem Pandas -Datenrahmen mache.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post