374 votes

comment trier les données de pandas d'une colonne

j'ai un cadre de données comme celui-ci

 print(df)

        0          1     2
0   354.7      April   4.0
1    55.4     August   8.0
2   176.5   December  12.0
3    95.5   February   2.0
4    85.6    January   1.0
5     152       July   7.0
6   238.7       June   6.0
7   104.8      March   3.0
8   283.5        May   5.0
9   278.8   November  11.0
10  249.6    October  10.0
11  212.7  September   9.0
 

comme vous pouvez le voir, les mois ne sont pas dans l'ordre du calendrier. J'ai donc créé une deuxième colonne et récupéré le numéro du mois correspondant à ce mois. à partir de là, comment puis-je trier ce cadre de données en fonction de l'ordre des mois civils?

488voto

EdChum Points 10205

Utiliser sort_values pour trier les df par une colonne spécifique de valeurs:

In [18]:
df.sort_values('2')

Out[18]:
        0          1     2
4    85.6    January   1.0
3    95.5   February   2.0
7   104.8      March   3.0
0   354.7      April   4.0
8   283.5        May   5.0
6   238.7       June   6.0
5   152.0       July   7.0
1    55.4     August   8.0
11  212.7  September   9.0
10  249.6    October  10.0
9   278.8   November  11.0
2   176.5   December  12.0

Si vous souhaitez trier par deux colonnes, passer d'une liste des étiquettes de colonne d' sort_values avec les étiquettes des colonnes ordonnées selon la priorité de tri. Si vous utilisez df.sort_values(['2', '0']), le résultat serait triés par colonne 2 puis colonne 0. Accordée, ce qui n'a pas vraiment de sens pour cet exemple parce que chaque valeur en df['2'] est unique.

10voto

Harry_pb Points 1555

Il suffit d'ajouter quelques opérations supplémentaires sur les données. Supposons que nous ayons un cadre de données df , nous pouvons effectuer plusieurs opérations pour obtenir les résultats souhaités.

 ID         cost      tax    label
1       216590      1600    test      
2       523213      1800    test 
3          250      1500    experiment

df['label'].value_counts().to_frame().reset_index()).sort_values('label', ascending=False)
 

donnera sorted sortie d'étiquettes en dataframe

     index   label
0   test        2
1   experiment  1
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X