web-dev-qa-db-fra.com

méthode sort_values ​​() dans les pandas

J'ai le sous-ensemble de données suivant et je dois trier la colonne Education par ordre croissant; à partir de 0 to 17.

 enter image description here

J'ai essayé le code suivant sans succès.

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

également...

suicide_data.Education.sort_values()

et...

suicide_data.sort_values('Education')

Voici l'erreur que je reçois ...

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

La documentation indique que str peut être trié avec la méthode sort_values(). Quelqu'un sait-il comment trier la colonne Education par ordre croissant?

4
Gilbert

Il semble que vous ayez des types mélangés dans la colonne Education de votre DataFrame. Le message d'erreur vous indique qu'il ne peut pas comparer les chaînes à les flottants de votre colonne. En supposant que vous souhaitiez trier les valeurs numériquement, vous pouvez les convertir en type entier et trier puis. De toute façon, je vous conseillerais de le faire, car les types mixtes ne seront pas très utiles pour les opérations dans votre DataFrame. Ensuite, utilisez DataFrame.sort_values

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

Il convient également de souligner que votre première tentative,

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

trier votre DataFrame par l’index que vous ne voulez pas et votre deuxième tentative 

suicide_data.Education.sort_values()

renverrait uniquement la série triée - ce sont des approches totalement non valides. 

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