Récupérer la première ligne de chaque groupe dans un DataFrame Pandas
Question :
Comment pouvez-vous extraire efficacement la première ligne de chaque groupe d'un Pandas DataFrame, où le regroupement est défini par plusieurs colonnes ?
Réponse :
Pour récupérer la première ligne de chaque groupe dans un Pandas DataFrame basé sur plusieurs colonnes :
Regroupez les données : Regroupez le DataFrame par les colonnes souhaitées à l'aide de la méthode groupby() :
df_grouped = df.groupby(['id', 'value'])
Appliquer une fonction d'agrégation : Appliquer la fonction first() à chaque groupe pour obtenir le premier élément non nul :
df_first_rows = df_grouped.first()
Réinitialiser l'index (facultatif) : Si vous avez besoin des colonnes 'id' et 'value' en tant que colonnes distinctes, utilisez la méthode reset_index() :
df_first_rows = df_first_rows.reset_index()
Exemple :
Considérez le DataFrame suivant :
df = pd.DataFrame({'id': [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7], 'value': ["first", "second", "second", "first", "second", "first", "third", "fourth", "fifth", "second", "fifth", "first", "first", "second", "third", "fourth", "fifth"]})
Application des étapes de 上記の :
df_grouped = df.groupby(['id', 'value']) df_first_rows = df_grouped.first() df_first_rows = df_first_rows.reset_index() print(df_first_rows)
Sortie :
id value 0 1 first 1 2 first 2 3 first 3 4 second 4 5 first 5 6 first 6 7 fourth
Ce code récupère avec succès la première ligne de chaque groupe défini par les colonnes « id » et « value ».
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!