Maîtrisez les Agrégations avec Pandas

Produire et manipuler des agrégations
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Maîtrisez Python : Analyse et visualisations des données
Revoir le teaser Je m'abonne
3,5
Transcription

Description Programme Avis
3,5

Les objectifs de cette vidéo sont :

- Maîtriser l'utilisation de la fonction GroupBy de Pandas.
- Savoir appliquer des fonctions d'agrégation à un DataFrame.
- Apprendre à trier et ré-indexer les résultats pour une analyse optimale.

Apprenez à produire et manipuler des agrégations avec Pandas grâce à la fonction GroupBy. Découvrez comment regrouper et analyser les données pour obtenir des insights pertinents.

Dans cette leçon, nous allons explorer les techniques avancées pour produire et manipuler des agrégations avec l'outil Pandas. Vous découvrirez comment utiliser la fonction GroupBy pour regrouper vos données en fonction de critères spécifiques, ainsi que la fonction Ag pour appliquer des agrégations telles que la somme, la moyenne ou le comptage des lignes.

Nous illustrerons ces concepts par des exemples concrets, permettant de regrouper les ventes et les profits par catégories de produits, et même par sous-catégories. En outre, nous aborderons le tri des résultats avec la fonction Sort Values et l'importance de réinitialiser les index avec Reset Index pour la compatibilité avec les outils de visualisation et d'analyse de données.

À la fin de cette vidéo, vous serez capables d’identifier des modèles et des tendances clés dans vos données, grâce à une manipulation avancée des agrégations.

Voir plus
Questions réponses
Qu'est-ce que la fonction GroupBy dans Pandas ?
La fonction GroupBy dans Pandas permet de regrouper un DataFrame en fonction d'une ou plusieurs variables, pour appliquer ensuite des fonctions d'agrégation comme la somme, la moyenne ou le comptage sur ces groupes.
Pourquoi ne peut-on pas chaîner des opérations après un GroupBy ?
Parce que le résultat d'un GroupBy n'est pas un DataFrame mais un DataFrameGroup, ce qui empêche de chaîner des opérations comme on le fait avec un DataFrame standard. Il faut d'abord appliquer une fonction d'agrégation pour obtenir un DataFrame.
Pourquoi est-il nécessaire de réinitialiser les index après une agrégation ?
La réinitialisation des index avec Reset Index est nécessaire pour rendre le DataFrame compatible avec les outils de visualisation et d'analyse qui n'acceptent pas les index multi-niveaux créés par les agrégations.
Dans cette vidéo, nous allons voir comment produire et manipuler des agrégations avec Panda. Alors, dans une vidéo précédente, on avait commencé à rechercher des informations dans un DataFrame, construit à partir des informations de vente du SuperStore, et pourtant, on ne pouvait pas aller bien loin dans le sens où, à un moment, on aurait aimé regrouper les informations en agrégats, c'est-à-dire les regrouper selon des critères définis. Par exemple, quel est le nombre de ventes par région ou par catégorie de produits ? La fonction Query de Panda ne permet pas de faire ce type d'agrégat, et c'est l'occasion, dans cette vidéo, de vous montrer comment vous pouvez, effectivement, rassembler ces informations et en sortir des informations encore plus utiles. Comme d'habitude, nous importons la ressource, le fichier CSV, et nous poursuivons. La production d'agrégats avec Panda va se faire à l'aide de la fonction GroupBy. Cette fonction accepte deux paramètres. By qui accepte une chaîne de caractères, c'est-à-dire le nom d'une des variables, ou une liste de chaînes de caractères, à savoir une ou plusieurs variables de votre DataFrame. Axis ne va pas avoir d'utilité dans ce chapitre-là particulier, mais sachez qu'il peut avoir pour valeur possible index ou columns, selon le sens dans lequel vous manipulez le DataFrame. Alors, attention, le résultat de cette fonction n'est pas un DataFrame, mais un DataFrameGroup, c'est un autre objet. Il n'est donc pas possible de chaîner les opérations, comme nous l'avions vu avec la fonction Query, par exemple, de sorte à encore et encore affiner nos données. Ça, c'est pas possible. Alors, c'est pas possible, pourquoi ? Parce que, je vous l'ai dit, c'est pas le même objet, et surtout parce que nous avons commencé à effectuer une agrégation en regroupant nos lignes du DataFrame en fonction d'une ou plusieurs variables, mais nous n'avons pas appliqué de fonction d'agrégation. C'est-à-dire qu'il faut indiquer à Panda quelle fonction il doit utiliser pour rassembler ses lignes. Est-ce qu'il faut compter le nombre de lignes ? Est-ce qu'il faut effectuer la somme des valeurs qu'il y a dans ses lignes ? Est-ce qu'il faut effectuer une moyenne des valeurs de la somme de ses lignes ? Etc. Pour cela, nous allons utiliser la fonction Ag. La fonction Ag, pour agrégation, va vous permettre de définir le nom de la fonction à utiliser. Comme vous pouvez le voir dans le tableau ci-dessous, nous avons rassemblé ici les ventes et les profits par catégories de produits en appliquant la fonction Somme. Là où ça devient super intéressant, c'est quand nous commençons à agréger par plusieurs variables. Nous pouvons obtenir ce genre de tableau à plusieurs niveaux où nous allons obtenir et les ventes et les produits par catégories et sous-catégories de produits. Et c'est à ce moment-là où on peut commencer à identifier des patterns, des informations qui peuvent être super utiles. Notamment ici, nous avons des sous-catégories de produits qui sont en produits négatifs par catégorie de produits. Et c'est peut-être des produits qu'il faudrait enlever du catalogue. Autre information, les tris Descendants et Ascendants. Une fois qu'on a regroupé ces informations, il peut être intéressant de les regrouper du plus grand au plus petit ou du plus petit au plus grand ou dans l'ordre alphabétique par exemple. Pour cela, on utilisera la fonction Sort Values en passant le paramètre By, un petit peu comme le groupe By, et un deuxième paramètre Ascending qui peut être passé soit à False, soit à True. Alors attention, ne vous faites pas avoir, il n'existe pas de paramètre Descending que vous pouvez passer à True. Si vous avez plusieurs variables dans le groupe By, à ce moment-là, Ascending et By, dans Sort Values, acceptent aussi une liste de paramètres pour pouvoir définir pour chacun des éléments que l'on aura regroupés l'ordre de tri et potentiellement dans quelle direction on veut effectuer le tri, que ce soit en Ascendant ou en Descendant. Un exemple ici, pour cette table, avec le rassemblement des ventes des produits par catégorie et sous-catégorie, où j'ai fait le choix de classer les ventes dans l'ordre croissant et les profits dans l'ordre descendant. Du coup, on se retrouve avec la table suivante, où les ventes sont triées du plus petit au plus grand, et dans ce premier ordre, ensuite, les profits du plus grand au plus petit. Vu que le premier tri est prioritaire, il va se faire dans ce sens-là. C'est parmi les ventes du plus petit au plus grand, quels sont les profits du plus grand au plus petit. Si ce rendu de table est lisible pour un être humain comme nous, sachez que la plupart des fonctions d'analyse que l'on va utiliser par la suite, que ce soit pour de l'analyse de tests statistiques ou pour de la visualisation de données, n'apprécient pas ce genre de structure, n'apprécient pas les agrégats de cette façon, et donc nous allons devoir rétablir les index, c'est-à-dire remettre catégories et subcatégories au même niveau que sales et profits. Ce que ça va impliquer, c'est qu'ici, les valeurs vont être dupliquées, donc c'est comme si on remet ces lignes une à une et qu'on complète, alors qu'on avait fait des groupes, et de sorte à récupérer un data frame classique, tel que nous les avons vus depuis le début. Pour faire cela, nous allons utiliser la fonction Reset Index. En appliquant un paramètre Inplace à trop, ce paramètre-là va permettre d'appliquer la modification au data frame directement. Nous ne sommes pas obligés de faire ça, nous aurions pu déclarer une autre variable, Toto, par exemple, Toto égale vente par catégorie point Reset Index, sans le Inplace, à ce moment-là, le vente par catégorie, lui, ne bouge pas, et donc vous gardez la structure que vous avez co-construit au départ, tout en ayant un autre data frame qui peut être utilisé pour des analyses futures ou de la visualisation de données. Alors, ce que ça change, on le voit ici quand on consulte les colonnes du data frame. Dans l'agrégat que nous avions construit, il ne nous restait que Sales et Profits en colonne, après le Reset Index, nous récupérons à nouveau le catégorie. Pareil pour le deuxième data frame, avec deux catégories à manipuler. Au départ, nous n'avions que Sales et Profits, et après le Reset Index, après avoir remis à plat notre data frame, nous récupérons à nouveau catégorie et subcatégorie. Et comme je vous le disais, pour que Panda puisse faire ça, il va re-remplir la colonne catégorie et subcatégorie avec les entrées manquantes, par duplication, tout simplement. Notez, maintenant que vous avez compris tout ça, et que vous avez compris la notion d'agrégat, que l'on aurait pu obtenir le même résultat en passant un paramètre supplémentaire AsIndex à False dès le regroupement, dans la fonction GroupBy. Pourquoi je ne vous ai pas montré ça dès le départ ? C'est que dans la pratique, et dans la plupart des projets que j'ai vus, les gens n'utilisent pas le AsIndex à False, pour des raisons autres que ce qui nous intéresse dans le cadre de cette formation. Et donc il faut prendre l'habitude, dès que vous voyez un appel à la fonction GroupBy, de garder le réflexe, après manipulation et après obtention des informations utiles, de faire un reset de vos index.
4 commentaires
3,5
4 votes
5
4
3
2
1
elephorm-1464076@addviseo.com
Il y a 3 months
Commentaire
Bonne formation mais vraiment dommage de ne pas avoir au moins les liens des supports de cours.
nicolasmichaux1
Il y a 1 year
Commentaire
Bonnne formation mais aucun support de cours
lebris.gilles76
Il y a 2 years
Commentaire
Très bien , mais il manque les supports de cours
antoinem
Il y a 2 years
Commentaire
Bien mais il manque les supports de cours
Nos dernières formations Python
  • Pack 5 formations
    Pack Python : Des bases aux techniques avancées
    Découvrir
    Réputé pour être le langage de programmation le plus populaire au monde, Python est très plébiscité pour ses différentes utilisations.  A travers ce pack de 5 formations, vous apprenez les fondamentaux de la programmation Python, vous maîtrisez les techniques avancées et vous découvrez comment utiliser Python pour le web et pour l’analyse et la visualisation des données. Apprendre à programmer en Python : Apprendre les fondamentaux du langage de programmation Python. Apprendre Python : Qualité de code et maintenance : Maîtriser Python avec une qualité de code et de maintenance optimales. Maîtriser Python : Techniques avancées : Formez-vous aux différentes fonctionnalités avancées de python. Apprendre le web avec Python/ Django : Découvrez la programmation Web : Apprendre les principes fondamentaux de la programmation Web Maîtriser Python : Analyse et visualisations des données : Apprendre à utiliser Python pour l’analyse et la visualisation des données
    22h52 154 leçons
  • Apprendre Python   - Qualité de code et maintenance
    Découvrir
    Maîtriser Python avec une qualité de code et de maintenance optimales
    3h09 23 leçons
  • Maîtriser Python  - Techniques avancées
    Découvrir
  • Apprendre à programmer en Python
    Découvrir
    Apprendre les fondamentaux du langage de programmation Python
    6h33 60 leçons 4,75 / 5
  • Apprendre le Web avec Python/Django - Découvrez la programmation web
    Découvrir
    Apprendre les principes fondamentaux de la programmation Web
    4h38 32 leçons 3,50 / 5