Maison > base de données > tutoriel mysql > Comment implémenter la clause GROUP BY HAVING de SQL dans Pandas ?

Comment implémenter la clause GROUP BY HAVING de SQL dans Pandas ?

Susan Sarandon
Libérer: 2025-01-10 17:29:41
original
853 Les gens l'ont consulté

How to Implement SQL's GROUP BY HAVING Clause in Pandas?

Implémentation de la clause SQL GROUP BY HAVING dans Pandas

En SQL, l'opération GROUP BY divise les données en sous-ensembles en fonction des valeurs des colonnes spécifiées. La clause HAVING applique des contraintes de filtre à ces sous-ensembles. Cette fonctionnalité permet l’agrégation et le filtrage sélectifs des données.

Dans Pandas, la fonctionnalité GROUP BY est disponible via la méthode groupby(), qui renvoie un objet GroupBy. L'équivalent Pandas de la clause SQL HAVING est la méthode filter(), qui applique un filtre au sous-ensemble créé par groupby().

Syntaxe :

<code>df.groupby(by_column).filter(filter_function)</code>
Copier après la connexion

Parmi eux :

  • df est un DataFrame Pandas.
  • by_column est la colonne utilisée pour le regroupement.
  • filter_function est une fonction qui renvoie une valeur booléenne pour chaque groupe.

Utilisation :

Pour appliquer un filtre sur un ensemble de données groupé dans Pandas, suivez ces étapes :

  1. Créez un objet GroupBy en appelant groupby() sur un DataFrame.
  2. Appliquer filter() à chaque groupe en utilisant la méthode filter_function.
  3. filter_function devrait renvoyer une valeur booléenne pour chaque groupe.
  4. Les groupes filtrés seront renvoyés sous la forme d'un nouveau DataFrame.

Exemple :

Supposons que nous ayons le DataFrame Pandas suivant :

<code>df = pd.DataFrame([[1, 2], [1, 3], [5, 6]], columns=['A', 'B'])</code>
Copier après la connexion

Pour retrouver les groupes dont la somme dans la colonne B est supérieure à 4, on peut utiliser le code suivant :

<code>result = df.groupby('A').filter(lambda x: x['B'].sum() > 4)</code>
Copier après la connexion

Le résultat sera un nouveau DataFrame contenant les lignes des groupes qui répondent aux critères de filtre :

<code>print(result)</code>
Copier après la connexion

Sortie :

<code>   A  B
0  1  2
1  1  3</code>
Copier après la connexion

Remarques supplémentaires :

  • filter_function peut être n'importe quelle fonction Python valide qui accepte un groupe Pandas en entrée et renvoie une valeur booléenne.
  • Il est important de noter que filter_function n'a pas accès aux colonnes utilisées pour le regroupement. Si vous devez accéder à ces colonnes, vous pouvez les regrouper manuellement par colonne avant d'appliquer le filtre.
  • La fonctionnalité GROUP BY HAVING de Pandas fournit un moyen puissant d'effectuer des opérations complexes d'agrégation et de filtrage de données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal