Maison >développement back-end >Tutoriel Python >Comment effectuer une agrégation de données avec Pandas ?

Comment effectuer une agrégation de données avec Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 06:11:11573parcourir

How to Perform Data Aggregation with Pandas?

Agrégation dans Pandas

Avec Pandas, vous pouvez effectuer diverses opérations d'agrégation pour réduire la dimensionnalité et résumer les données.

Question 1 : Comment puis-je effectuer une agrégation avec Pandas ?

Pandas fournit de nombreuses fonctions d'agrégation, notamment Mean(), sum(), count(), min() et max(). Vous pouvez utiliser ces fonctions pour calculer des statistiques récapitulatives pour chaque groupe. Par exemple :

# Calculate mean of each group based on 'A' and 'B' columns
df1 = df.groupby(['A', 'B']).mean()

# Print the results
print(df1)

Question 2 : Pas de DataFrame après agrégation ! Que s'est-il passé ?

Lorsque vous appliquez l'agrégation à plusieurs colonnes, l'objet résultant peut être une série ou un DataFrame en fonction du nombre de colonnes regroupées.

  • Série : Si vous regroupez par une ou plusieurs colonnes, le résultat est une Série avec un index correspondant au groupes.
  • DataFrame : Si vous regroupez par une seule colonne, le résultat est un DataFrame avec des colonnes correspondant aux colonnes d'origine.

Pour obtenir un DataFrame avec toutes les colonnes, utilisez as_index=False dans la fonction groupby.

Question 3 : Comment puis-je agréger principalement colonnes de chaînes (vers des listes, des tuples, des chaînes avec séparateur) ?

Pour agréger des colonnes de chaînes, vous pouvez utiliser des opérations de liste, de tuple ou de jointure.

  • Liste : Convertissez la colonne en liste en utilisant list() ou GroupBy.apply(list).
  • Tuple : Convertissez la colonne en tuple à l'aide de tuple() ou GroupBy.apply(tuple).
  • String avec separator : Combinez les chaînes avec un séparateur en utilisant str.join().

Pour exemple :

# Convert 'B' column values to a list for each group
df1 = df.groupby('A')['B'].agg(list).reset_index()

# Combine 'B' column values into a string with separator for each group
df2 = df.groupby('A')['B'].agg(','.join).reset_index()

Question 4 : Comment puis-je agréger les comptes ?

Pour compter les valeurs non manquantes dans chaque groupe, utilisez GroupBy.count(). Pour compter toutes les valeurs, y compris celles manquantes, utilisez GroupBy.size().

Par exemple :

# Count non-missing values in 'C' column for each group
df1 = df.groupby('A')['C'].count().reset_index(name='COUNT')

# Count all values in 'A' column for each group
df2 = df.groupby('A').size().reset_index(name='COUNT')

Question 5 : Comment puis-je créer une nouvelle colonne remplie de valeurs agrégées ?

Vous pouvez ajouter une nouvelle colonne contenant les valeurs agrégées en utilisant la méthode transform(). La fonction transform() applique l'opération spécifiée à chaque groupe et renvoie un nouvel objet de la même taille que l'original.

Par exemple :

# Create a new 'C1' column with the sum of 'C' grouped by 'A'
df['C1'] = df.groupby('A')['C'].transform('sum')

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn