Index Pandas Groupby

Index Pandas Groupby
Pour diviser les données en groupes, nous pouvons utiliser les données Pandas DataFrame.Fonction GroupBy (). Nous pouvons diviser les objets Pandas en groupes de données le long d'un axe. La définition formelle du regroupement est une cartographie étiquette de nom de groupe. Un objet est divisé, une fonction est appliquée et les sorties sont combinées dans une opération Groupby. Il s'agit d'une méthode utile pour effectuer les opérations et agréger les quantités massives de données. Le Pandas Groupby supprime les colonnes Groupby de la liste des colonnes de DataFrame et les convertit en index par défaut. Dans cet article, nous montrerons comment regrouper les données en fonction de l'index ou de l'index multi-index de la dataframe en pandas et comment effectuer les différentes opérations sur l'index après les regrouper.

Comment utiliser l'index Groupby dans Pandas

Jetons un coup d'œil à la syntaxe de la fonction groupby () avant de l'appliquer à l'index de DataFrame.

Syntaxe:

Trame de données.groupby (by = non, axe = 0, niveau = aucun, as_index = true, srie = true, group_keys = true)

Où;

par: Une chaîne, une fonction, un itérable ou une cartographie.

axe: Int, zéro par défaut.

niveau: Regrouper les données de l'axe d'index à plusieurs niveaux par un certain niveau ou des niveaux hiérarchiques.

as_index: Cela ne s'applique qu'à l'entrée DataFrame. Si index = false, la sortie est regroupée en «style SQL».

trier: Un groupe de clés doit être trié. Éteignez cela pour augmenter les performances. Cela ne devrait avoir aucun impact sur l'ordre ou la séquence d'observations au sein d'un groupe. Les lignes à l'intérieur de chaque groupe sont conservées dans l'ordre maintenu par le groupe.

group_keys: Lors de l'appel, appliquez, ajoutez les clés des groupes à l'index pour identifier la pression des pièces: Réduisez la dimensionnalité du type de retour si vous le pouvez; Sinon, renvoyez un type constant.

Maintenant, vous pouvez effectuer les calculs lors du regroupement par les colonnes d'index unique ou multiples en utilisant les méthodes répertoriées dans les éléments suivants:

Exemple 1: Trouver la valeur maximale de la colonne en regroupant la colonne d'index

Nous créons d'abord un dataframe à l'aide du PD.Fonction DataFrame () afin que nous puissions regrouper les données de l'index de DataFrame et déterminer leur valeur maximale pour une colonne spécifique de DataFrame. Nous importons la bibliothèque Pandas avant de créer le DataFrame.

Nous créons un dataframe composé de trois colonnes: «Team_id», «country» et «score». Les valeurs de données («001», «002», «001», «001», «003», «003», «002», «001», «002», «003»), («Espagne», «Brésil», «Brésil», «Allemagne», «Brésil», «Espagne», «Allemagne», «Espagne», «Allemagne», «Espagne») et (6, 10, 6, 5, 8, 5 , 8, 9, 5, 8) sont stockés dans les colonnes «Team_id», «country» et «score», respectivement. Comme on peut le remarquer, il existe un index entier qui est un index par défaut créé par le constructeur Pandas. Nous pouvons spécifier la colonne ou les colonnes du DataFrame comme index du DataFrame à l'aide de la fonction set_index ().

La colonne «Team_id» est maintenant convertie en un index. Groupons l'index à l'aide de la fonction groupby () et trouvons la valeur maximale pour chaque groupe à l'aide de la fonction max ().

En spécifiant l'étiquette de colonne d'index à l'intérieur de la fonction GroupBy () comme une chaîne, nous convertissons les données en trois groupes: 001, 002 et 003. Ensuite, la fonction max () est appliquée à la colonne «Score» pour trouver la valeur maximale pour chaque groupe. Pour la valeur du groupe «001», la valeur maximale dans la colonne «score» est 9. Ensuite, 10 est la valeur maximale des données de groupe 002, et 8 est la valeur maximale des données de groupe 003.

Exemple 2: Trouvez la somme des valeurs de la colonne en regroupant les colonnes multi-index

Dans l'exemple précédent, nous avons converti une seule colonne du DataFrame comme un index de DataFrame. Maintenant, nous définissons les multiples colonnes DataFrame car les dataframe indexent.

Dans le nouveau DataFrame, nous avons quatre colonnes avec des étiquettes «groupe», «team_id», «nom» et «âge». Dans la colonne «Groupe», nous avons les valeurs de données («x», «x», «x», «x», «x», «y», «y», «y», «y», « Y ”). Le «Team_ID» stocke les valeurs («001», «002», «001», «001», «003», «003», «002», «001», «002», «003»). Alors que les colonnes «Nom» et «Age» sont constituées de valeurs de données («Riz», «Bran», «Kim», «William», «Hardy», «Sam», «Ryan», «Lana», «Jenny» , «Argile») et (21, 25, 19, 17, 22, 27, 25, 18, 29, 21). Définissons les colonnes Groupe et Team_ID comme index DataFrame.

La liste des étiquettes de colonne [«groupe», «team_id»] est transmise à l'intérieur de la fonction set_index (). Maintenant, le groupe des colonnes et Team_id agissent comme l'index à plusieurs niveaux. Converons les données d'index en groupes et déterminons la somme des valeurs dans la colonne «Age» pour chaque groupe.

La fonction détermine avec succès la somme des valeurs de colonne «d'âge» pour chaque groupe d'index à plusieurs niveaux.

Exemple 3: Trouvez le nombre de valeurs uniques en regroupant une colonne d'index et une colonne régulière du DataFrame

Nous avons vu comment regrouper la colonne d'index ou plusieurs colonnes d'index du DataFrame. Maintenant, nous regroupons à la fois l'index et les colonnes de données de données régulières pour trouver le nombre de valeurs uniques dans une colonne spécifique. Pour le PD.Fonction DataFrame (), Pour générer le DataFrame, un dictionnaire est passé comme entrée.

Un dataframe est créé. Nous créons quatre colonnes dans notre dataframe. La colonne «Section» a des valeurs de cordes («rouge», «rouge», «rouge», «rouge», «rouge», «bleu», «bleu», «bleu», «bleu», «bleu»). La chronique «étudiante» stocke les noms des étudiants comme String («Frey», «Kelly», «Peter», «Tyson», «Jhon», «Sansa», «Cloe», «Randy», «Lance», «Lance», « Diaz »). La colonne «Subjets» a des valeurs de chaîne comme le nom des sujets («C ++», «C ++», «Java», «Python», «Python», «C ++», «C #», «C #», «R», «JS»). Et la colonne «Position» a des valeurs entières (3, 1, 3, 2, 1, 5, 4, 6, 4, 7).

Comme la «section» de la colonne est définie comme un index DataFrame, regroupons nos colonnes à l'aide de la fonction groupBy ().

Nous passons une liste des étiquettes de colonne (une étiquette de colonne d'index et une étiquette de colonne régulière) comme un argument à l'intérieur de la fonction groupBy () pour créer les groupes. La fonction nounique () est appliquée à la colonne «Sujet» pour compter les valeurs distinctes pour chaque groupe.

Exemple 4: Trouvez la moyenne de plusieurs colonnes en regroupant plusieurs colonnes d'index du DataFrame

Nous avons appliqué les différentes fonctions à une colonne spécifique du DataFrame dans les exemples précédents. Maintenant, nous appliquons les différentes fonctions sur plusieurs colonnes après le regroupement de la colonne d'index. Nous créons un exemple de dataframe comme on peut le voir ci-dessous:

Tout d'abord, nous définissons la colonne de section comme colonne d'index.

Maintenant, regroupons les données des colonnes d'index et déterminons la valeur moyenne et la valeur de somme des colonnes «test1» et «test2», respectivement.

Nous utilisons la fonction AGG () et passons un dictionnaire avec des noms de colonne comme clés et fonctions / opérations comme valeurs pour appliquer les différentes fonctions sur les colonnes «test1» et «test2». La moyenne de la colonne «Test1» est 7.2 et la somme des valeurs de colonne «test2» est 35 pour le groupe A. Pour le groupe B, la moyenne des valeurs de colonne «test1» est 6.6 et la somme des valeurs de colonne «test2» est 31.

Conclusion

Dans ce tutoriel, nous avons discuté de la façon d'utiliser la fonction GroupBy () avec la colonne d'index de DataFrame dans Pandas. Tout d'abord, nous avons discuté de la syntaxe de la fonction groupby () pour comprendre ses paramètres et ses fonctionnalités. Nous avons pratiquement mis en œuvre les multiples exemples de cet article pour vous apprendre à exécuter les différentes fonctions sur une colonne spécifique ou plusieurs colonnes d'une dataframe en regroupant la colonne d'index ou les colonnes d'index à plusieurs niveaux.