Halten Sie Pandas Struktur mit numpy / scikit Funktionen

Ich benutze die hervorragende read_csv() Funktion von Pandas, die gibt:

 In [31]: data = pandas.read_csv("lala.csv", delimiter=",") In [32]: data Out[32]: <class 'pandas.core.frame.DataFrame'> Int64Index: 12083 entries, 0 to 12082 Columns: 569 entries, REGIONC to SCALEKER dtypes: float64(51), int64(518) 

Aber wenn ich eine Funktion von scikit-learn Ich lose die Informationen über Spalten:

 from sklearn import preprocessing preprocessing.scale(data) 

Gibt numpy Array.

Gibt es eine Möglichkeit, scikit oder numpy Funktion auf DataFrames anzuwenden, ohne die Informationen zu verlieren?

2 Solutions collect form web for “Halten Sie Pandas Struktur mit numpy / scikit Funktionen”

Ein (etwas naiver) Weg wäre, die Struktur Ihres Datenrahmens, dh seine Spalten und Index, separat zu speichern und dann einen neuen Datenrahmen aus Ihren vorverarbeiteten Ergebnissen wie folgt zu erstellen:

 In [15]: data = np.zeros((2,2)) In [16]: data Out[16]: array([[ 0., 0.], [ 0., 0.]]) In [17]: from pandas import DataFrame In [21]: df = DataFrame(data, index = ['first', 'second'], columns=['c1','c2']) In [22]: df Out[22]: c1 c2 first 0 0 second 0 0 In [26]: i = df.index In [27]: c = df.columns # generate new data as a numpy array In [29]: df = DataFrame(np.random.rand(2,2), index=i, columns=c) In [30]: df Out[30]: c1 c2 first 0.821354 0.936703 second 0.138376 0.482180 

Wie Sie in Out[22] , starten wir mit einem Datenrahmen und dann in In[29] legen wir neue Daten in den Rahmen und lassen die Zeilen und Spalten unverändert. Ich gehe davon aus, dass Ihre Vorverarbeitung die Zeilen / Spalten der Daten not mischt.

Dies kann durch Umwickeln der zurückgegebenen Daten in einem Dataframe erfolgen, wobei index und Spalteninformationen in.

 import pandas as pd pd.DataFrame(preprocessing.scale(data), index = data.index, columns = data.columns) 
  • Wie speichere ich einen TfidfVectorizer für zukünftige Verwendung in scikit-learn?
  • Multiprocessing scikit-lernen
  • Gibt es eine einfache Möglichkeit, ohne Kreuzvalidierung in Python zu suchen?
  • Vectorisierung eines Pandas-Dataframe für Scikit-Learn
  • Wie berechnen Sie Silhouette Score der Scipy's Fcluster mit Scikit-Learn Silhouette Score?
  • Dimension der Daten vor und nach der Durchführung von PCA
  • Scikit-lernen DBSCAN Speicherverbrauch
  • Wie man mit PCA normalisiert und scikit-lernen
  • Tausche Nullen in numpy Matrix
  • Wie löse ich die Überfüllung in zufälligem Wald von Python Sklearn?
  • Wie benutzt man `log_loss` in` GridSearchCV` mit Multi-Class-Labels in Scikit-Learn (Sklearn)?
  • Python ist die beste Programmiersprache der Welt.