webentwicklung-frage-antwort-db.com.de

sort_values ​​() -Methode in Pandas

Ich habe die folgende Untermenge von Daten und muss die Spalte Education in aufsteigender Reihenfolge sortieren. von 0 to 17.

 enter image description here

Ich habe den folgenden Code ohne Erfolg ausprobiert.

suicide_data.sort_index(axis=0, kind='mergesort')

ebenfalls...

suicide_data.Education.sort_values()

und...

suicide_data.sort_values('Education')

Hier ist der Fehler, den ich bekomme ...

TypeError: '>' not supported between instances of 'float' and 'str'

Die Dokumentation besagt, dass str mit der sort_values()-Methode sortiert werden kann. Weiß jemand, wie die Spalte Education in aufsteigender Reihenfolge sortiert wird?

4
Gilbert

Es scheint, dass Sie gemischte Typen in der Spalte Education Ihres DataFrame haben müssen. Die Fehlermeldung weist Sie darauf hin, dass Sie die Zeichenfolgen to der Floats in Ihrer Spalte nicht vergleichen können. Angenommen, Sie möchten die Werte numerisch sortieren, können Sie sie in einen Ganzzahlentyp konvertieren und dann sort. Ich würde Ihnen trotzdem raten, gemischte Typen sind für alle Vorgänge in Ihrem DataFrame nicht zu nützlich. Verwenden Sie dann DataFrame.sort_values

suicide_data['Education'] = suicide_data['Education'].astype('int')
suicide_data.sort_values(by='Education')

Es ist auch darauf hinzuweisen, dass Ihr erster Versuch,

suicide_data.sort_index(axis=0, kind='mergesort')

würde Ihren DataFrame nach dem Index, den Sie nicht möchten, und dem zweiten Versuch sortieren 

suicide_data.Education.sort_values()

würde nur die sortierte Serie zurückgeben - sie sind völlig ungültige Ansätze. 

14
miradulo
suicide_data['Education'].sort_values('Education', ascending = 'True')
1