Maison >développement back-end >Tutoriel Python >Traduction de COUNT(DISTINCT) de SQL en Pandas : comment utiliser la méthode nunique() ?
Traduction de COUNT(DISTINCT) de SQL en équivalents Pandas
Dans le domaine de la manipulation de données, Pandas est devenu un outil puissant pour gérer les tableaux données. Lorsqu'ils traitent diverses sources de données, telles qu'Oracle et SQL Server, les utilisateurs peuvent rencontrer des difficultés à traduire les requêtes SQL en opérations Pandas efficaces. Une tâche courante consiste à compter le nombre de valeurs distinctes, une tâche qui nécessite un « équivalent » à la fonction COUNT(DISTINCT) de SQL.
Pour y parvenir dans Pandas, lançons l'exploration d'une table avec des colonnes. représentant YEARMONTH, CLIENTCODE et divers autres attributs. En SQL, le comptage des clients distincts par an peut être effectué avec la requête suivante :
SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;
Cette requête donne un résultat qui affiche le nombre de clients distincts pour chaque année. Comment pouvons-nous reproduire cette fonctionnalité dans Pandas ?
La solution réside dans l'utilisation de la méthode nunique() :
table.groupby('YEARMONTH').CLIENTCODE.nunique()
Cette expression regroupe les données par colonne YEARMONTH et applique la nunique() méthode à la série CLIENTCODE au sein de chaque groupe. Le résultat est un DataFrame qui répertorie les valeurs YEARMONTH ainsi que le nombre de clients distincts pour chaque année.
Pour illustrer, considérons un exemple de DataFrame nommé table :
CLIENTCODE YEARMONTH 0 1 201301 1 1 201301 2 2 201301 3 1 201302 4 2 201302 5 2 201302 6 3 201302
Application du nunique( ) donne :
YEARMONTH 201301 2 201302 3
Par conséquent, la méthode nunique() de Pandas fournit la fonctionnalité équivalente à COUNT(DISTINCT) de SQL pour compter efficacement les valeurs distinctes dans une colonne spécifiée.
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!