Trier les données groupées selon la taille du groupe dans les Pandas
J'ai deux colonnes de mon dataset, col1 et col2. Je veux regrouper les données selon col1 et puis trier les données selon la taille de chaque groupe. C'est, je veux afficher les groupes dans l'ordre croissant de leur taille.
J'ai écrit le code pour le regroupement et d'afficher les données comme suit:
grouped_data = df.groupby('col1')
"""code for sorting comes here"""
for name,group in grouped_data:
print (name)
print (group)
Avant d'afficher les données, j'ai besoin de faire le tri selon la taille du groupe, dont je ne suis pas en mesure de le faire.
OriginalL'auteur nishant | 2014-03-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser python triés:
Remarque: comme un itérateur
g
, itère sur les paires de clés et le correspondant de châssis:C'est une liste de tuples, de sorte que vous pouvez parcourir avec:
for name, group in sorted(..)
, puis la colonne estgroup['col2']
. Ou vous pouvez fairesorted_data[0][1]['col2']
...Oh Oui. J'ai manqué de remarquer que c'est une liste de tuples. Merci.
OriginalL'auteur Andy Hayden
Pour les Pandas de 0,17+, utilisez
sort_values
:Pour le pré-0.17, vous pouvez utiliser
size().order()
:order
est dépréciée en faveur desort_values
.OriginalL'auteur Victor Yan