Pandas : comment obtenir la première rangée de chaque groupe
Vous pouvez utiliser la syntaxe de base suivante pour obtenir la première ligne de chaque groupe dans un DataFrame pandas :
df.groupby('column_name').nth(0)
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : Obtenez la première ligne de chaque groupe dans Pandas
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'points': [18, 22, 19, 14, 14, 11, 20, 29],
'assists': [5, 19, 14, 8, 9, 12, 13, 8]})
#view DataFrame
df
team points assists
0 A 18 5
1 A 22 19
2 B 19 14
3 B 14 8
4 B 14 9
5 C 11 12
6 C 20 13
7 C 29 8
Nous pouvons utiliser le code suivant pour obtenir la première ligne pour chaque équipe :
#get first row for each team
df.groupby('team').nth(0)
points assists
team
A 18 5
B 19 14
C 11 12
Nous pouvons également spécifier as_index=False pour conserver les valeurs d’index d’origine :
#get first row for each team, keep original index values
df.groupby('team', as_index=False).nth(0)
team points assists
0 A 18 5
2 B 19 14
5 C 11 12
Notez également que vous pouvez transmettre une liste de valeurs à la fonction nth() si vous souhaitez obtenir les n premières lignes de chaque groupe.
Par exemple, le code suivant montre comment obtenir les deux premières lignes de chaque groupe :
#get first two rows for each team, keep original index values
df.groupby('team', as_index=False).nth((0, 1))
team points assists
0 A 18 5
1 A 22 19
2 B 19 14
3 B 14 8
5 C 11 12
6 C 20 13
Remarque : Vous pouvez trouver la documentation complète de la fonction nth() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment obtenir la première rangée de Pandas DataFrame
Comment supprimer la première ligne dans Pandas DataFrame
Comment insérer une ligne dans un DataFrame Pandas