2017-10-23 2 views
0

Ich habe einen Pandas Datenrahmen, der wie diesePCA sklearn Valueerror: kann nicht Zeichenfolge konvertieren zu schweben: ‚[1, 3]‘

1 0 0 0 0 2 0 0 0 0 0 ... 0 0 1 2 0 0 0 0 0 0 
2 0 0 0 3 0 0 0 4 0 0 ... 0 5 0 0 3 0 0 [1, 3] 0 0 
3 0 0 0 0 0 0 0 2 0 0 ... 6 6 0 [2, 4] 0 2 0 0 0 0 
4 1 0 6 1 0 0 0 0 0 0 ... 0 0 0 0 4 0 0 5 0 0 
5 0 0 0 0 6 0 0 [2, 7] 0 0 ... 0 0 0 0 0 0 0 0 0 0 

sieht Ich versuche PCA zu verwenden, um die Dimensionalität zu reduzieren meine Daten, aber es gibt einige Punkte in den Daten, die mehr als 1 Dimension wie diese [2, 7] so sind, wenn ich PCA laufen bekomme ich diese Fehler

data = pca.fit_transform(z) 

ValueError: could not convert string to float: '[1, 3]' 

Wie gehe ich mit diesen

Antwort

2

V Antilla PCA funktioniert nicht, wenn Beobachtungen unterschiedliche Längen haben.
Wenn [1,3] bedeutet, dass zwei Datenpunkte für diese einzelne Zelle vorhanden sind, verwenden Sie eine Zusammenfassungsfunktion (z. B. Mittelwert oder Median), um zuerst einen einzelnen Wert für diese Zelle festzulegen, und führen Sie dann PCA aus.

(Auch scheint es, Ihr dtype für diese Felder ist str -. Erinnert in einen numerischen Typ zu konvertieren)

+0

was sie zur Codierung habe ich versucht, Label-Encoder und es hat sich zu konvertieren, aber es gibt all diese Listen einen label wie ändere ich das –

+0

Ich bin mir nicht sicher, aber es klingt, als ob du immer noch deine eigentliche Frage herausfinden würdest. Label Encoding ist wirklich ein separates Thema von dem, was Sie hier gefragt haben, und warum Sie einen "ValueError" mit PCA bekommen. Erwägen Sie, eine separate Frage für den Thread "LabelEncoder" zu öffnen und beschreiben Sie das Problem dort vollständiger. –

+0

Ich wollte sie als eine Lösung für dieses Problem bezeichnen, ich fügte eine neue Frage hinzu, bitte überprüfen Sie es und helfen Sie mir, wenn Sie könnten https://StackOverflow.com/Questions/46881360/How-to-Handle-Mixed-Type- data-in-pandas-data-frame –

Verwandte Themen