2017-06-23 11 views
1

Ich versuche, einen Datenrahmen in Pandas mit dem folgenden Code zu erstellen:Erstellen von Datenrahmen in Pandas (falscher Form)

df_coefficients = pd.DataFrame(data = log_model.coef_, index = X.columns, 
columns = ['Coefficients']) 

Allerdings halte ich die folgende Fehlermeldung erhalten:

Form von übergebenen Werten (1 5) ist, Indizes bedeuten (1, 5)

Die Werte und Indizes sind wie folgt:

Indices =

Index([u'Daily Time Spent on Site', u'Age', u'Area Income', 
     u'Daily Internet Usage', u'Male'], 
     dtype='object') 

Werte =

array([[ -4.45816498e-02, 2.18379839e-01, -7.63621392e-06, 
    -2.45264007e-02, 1.13334440e-03]]) 

Wie würde ich dieses Problem beheben? Ich habe die gleiche Art von Tabelle zuvor erstellt und ich habe diesen Fehler nie erhalten.

Jede Hilfe wäre willkommen.

Dank

Antwort

1

Es sieht aus wie Ihr Index und Werte-Arrays unterschiedliche Formen aufweisen. Wie Sie sehen können, hat das Index-Array einzelne Klammern, während das Werte-Array doppelte Klammern hat.

Auf diese Weise liest Python den Index mit shape (5,1), während das Werte-Array (1,5) ist.

Wenn Sie Werte wie Sie in der Frage geschrieben:

Values = 

array([[ -4.45816498e-02, 2.18379839e-01, -7.63621392e-06, 
-2.45264007e-02, 1.13334440e-03]]) 

und rufen Values.shape es gibt Values.shape (1,5)

Stattdessen, wenn Sie Werte gesetzt, wie:

Values = np.array([ -4.45816498e-02, 2.18379839e-01, -7.63621392e-06, 
-2.45264007e-02, 1.13334440e-03]) 

Dann ist die Form der Werte (5,), die mit dem Index-Array passen.

0

Ihre Daten haben fünf Spalten und eine Zeile anstelle einer Spalte und fünf Zeilen. Verwenden Sie einfach die transponierte Version davon mit .T:

df_coefficients = pd.DataFrame(data = log_model.coef_.T, index = X.columns, 
           columns = ['Coefficients']) 
Verwandte Themen