Obtention de la première ligne de chaque groupe dans un DataFrame Pandas
Dans les pandas, les opérations groupby permettent une agrégation et une manipulation efficaces des données dans différentes catégories . Cependant, récupérer des lignes spécifiques au sein de chaque groupe peut s'avérer difficile. Cet article montrera comment récupérer la première ligne de chaque groupe lors du regroupement d'un DataFrame pandas.
Problème :
Nous avons un DataFrame avec deux colonnes, "id" et « valeur ». Nous souhaitons regrouper le DataFrame par « id », « valeur » et obtenir la première ligne de chaque groupe.
Résultat attendu :
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
Solution :
Pour récupérer la première ligne de chaque groupe, on peut utiliser la méthode .first(). En passant "id" comme clé de groupe, .first() sélectionne le premier élément non nul pour chaque groupe "id" unique.
df.groupby('id').first()
Cela produira le résultat souhaité, avec la première ligne de chaque groupe "id" affiché.
Obtention de l'identifiant sous forme de colonne :
Si nous avons besoin de l'identifiant sous forme de colonne, nous peut utiliser .reset_index().
df.groupby('id').first().reset_index()
Cela donne :
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
Récupération de plusieurs lignes :
Pour récupérer les n premières lignes de chaque groupe, nous pouvons utiliser .head().
df.groupby('id').head(2).reset_index(drop=True)
Cela nous permet de récupérer un nombre spécifié de lignes depuis le début de chaque groupe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!