Pandas Group by Fonction est utilisé pour le regroupement des objets ou des colonnes DataFrames en fonction de conditions ou de règles particulières. En utilisant la fonction GroupBy, la gestion des ensembles de données est plus facile. Cependant, tous les enregistrements connexes peuvent être organisés en groupes. À l'aide de la bibliothèque Pandas, vous pouvez implémenter le groupe Pandas par fonction pour regrouper les données en fonction de différents types de variables. La plupart des développeurs ont utilisé trois techniques de base pour le groupe par fonction. Tout d'abord, la division dans laquelle les données se divisent en groupes en fonction de certaines conditions particulières. Ensuite, appliquez certaines fonctions à ces groupes. En fin de compte, combinez la sortie sous forme de structure de données.
Dans cet article, nous parcourons les utilisations de base d'un groupe par fonction dans Panda's Python. Toutes les commandes sont exécutées sur l'éditeur PyCharm.
Discutons du concept principal du groupe à l'aide des données de l'employé. Nous avons créé une dataframe avec quelques détails d'employés utiles (employee_name, désignation, employee_City, âge).
Concaténation de cordes à l'aide d'un groupe par fonction
En utilisant la fonction GroupBy, vous pouvez concaténer les chaînes. Les mêmes enregistrements peuvent être joints à ',' dans une seule cellule.
Exemple
Dans l'exemple suivant, nous avons trié des données sur la base de la colonne de la désignation des employés et nous avons rejoint les employés qui ont la même désignation. La fonction lambda est appliquée sur «Employés_Name».
Importer des pandas en tant que PD
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ("désignation") ['Employee_Names'].Appliquer (Lambda Employee_Names: ','.jointure (employee_Names))
Imprimer (DF1)
Lorsque le code ci-dessus est exécuté, la sortie suivante s'affiche:
Tri des valeurs dans un ordre ascendant
Utilisez l'objet GroupBy dans un DataFrame régulier en appelant '.to_frame () 'puis utilisez reset_index () pour la réindexer. Trier les valeurs de la colonne en appelant sort_values ().
Exemple
Dans cet exemple, nous trierons l'âge de l'employé dans l'ordre croissant. En utilisant le morceau de code suivant, nous avons récupéré le «Employee_age» dans l'ordre croissant avec «Employee_Names».
Importer des pandas en tant que PD
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_Names') ['employee_age'].somme().encadrer().reset_index ().sort_values (par = 'employee_age')
Imprimer (DF1)
Utilisation d'agrégats avec Groupby
Il existe un certain nombre de fonctions ou d'agrégations disponibles que vous pouvez appliquer sur des groupes de données tels que Count (), SUM (), Mean (), Median (), Mode (), Std (), Min (), Max ().
Exemple
Dans cet exemple, nous avons utilisé une fonction «count ()» avec Groupby pour compter les employés qui appartiennent au même «Employee_City».
Importer des pandas en tant que PD
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.Groupby ('Employee_City').compter()
Imprimer (DF1)
Comme vous pouvez le voir la sortie suivante, sous la désignation, les colonnes Employee_NaMe et Employee_age, comptent les numéros qui appartiennent à la même ville:
Visualiser les données à l'aide de groupe
En utilisant le `` Importer Matplotlib.pyplot ', vous pouvez visualiser vos données en graphiques.
Exemple
Ici, l'exemple suivant visualise le «Employee_age» avec «Employee_NMAES» à partir du DataFrame donné en utilisant la déclaration groupby.
Importer des pandas en tant que PD
Importer Matplotlib.pypllot comme plt
dataframe = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
PLT.CLF ()
trame de données.GroupBy («Employee_Names»).somme().tracé (kind = 'bar')
PLT.montrer()
Exemple
Pour tracer le graphique empilé à l'aide de GroupBy, tournez le «empilé = true» et utilisez le code suivant:
Importer des pandas en tant que PD
Importer Matplotlib.pypllot comme plt
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.GroupBy ([«Employee_City», «Employee_Names»]).taille().Unstack ().tracé (kind = 'bar', empilé = true, Fontize = '6')
PLT.montrer()
Dans le graphique ci-dessous, le nombre d'employés empilés qui appartiennent à la même ville.
Modifier le nom de la colonne avec le groupe par
Vous pouvez également modifier le nom de la colonne agrégée avec un nouveau nom modifié comme suit:
Importer des pandas en tant que PD
Importer Matplotlib.pypllot comme plt
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_Names') ['désignation'].somme().reset_index (name = 'employee_designation')
Imprimer (DF1)
Dans l'exemple ci-dessus, le nom de la «désignation» est changé en «Employee_Dessignation».
Récupérer le groupe par clé ou valeur
À l'aide de l'instruction GroupBy, vous pouvez récupérer des enregistrements ou des valeurs similaires à partir du DataFrame.
Exemple
Dans l'exemple ci-dessous, nous avons des données de groupe basées sur la «désignation». Ensuite, le groupe «Staff» est récupéré en utilisant le .GetGroup («personnel»).
Importer des pandas en tant que PD
Importer Matplotlib.pypllot comme plt
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.Groupby («désignation»)
Imprimer (extract_value.get_group ('personnel'))
Le résultat suivant s'affiche dans la fenêtre de sortie:
Ajouter de la valeur dans la liste des groupes
Des données similaires peuvent être affichées sous la forme d'une liste en utilisant l'instruction GroupBy. Tout d'abord, regroupez les données en fonction d'une condition. Ensuite, en appliquant la fonction, vous pouvez facilement mettre ce groupe dans les listes.
Exemple
Dans cet exemple, nous avons inséré des enregistrements similaires dans la liste de groupes. Tous les employés sont divisés en groupe en fonction de «Employee_City», puis en appliquant la fonction «lambda», ce groupe est récupéré sous la forme d'une liste.
Importer des pandas en tant que PD
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_City') ['Employee_Names'].Appliquer (Lambda Group_Series: Group_Series.lister()).reset_index ()
Imprimer (DF1)
Utilisation de la fonction de transformation avec Groupby
Les employés sont regroupés en fonction de leur âge, ces valeurs s'ajoutent et en utilisant la fonction «Transformer», une nouvelle colonne est ajoutée dans le tableau:
Importer des pandas en tant que PD
df = pd.Trame de données(
«Employee_Names»: [«Sam», «Ali», «Umar», «Raees», «Mahwish», «Hania», «Mirha», «Maria», «Hamza»],
«Désignation»: [«Manager», «Staff», «IT Officier», «IT Officier», «RH», «Staff», «RH», «Staff», «Équipe»],
«Employee_City»: [«Karachi», «Karachi», «Islamabad», «Islamabad», «Quetta», «Lahore», «Faislabad», «Lahore», «Islamabad»],
«Employee_age»: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.GroupBy (['Employee_Names']) ['employee_age'].transformer ('somme')
Imprimer (DF)
Conclusion
Nous avons exploré les différentes utilisations de la déclaration de groupe dans cet article. Nous avons montré comment vous pouvez diviser les données en groupes, et en appliquant différentes agrégations ou fonctions, vous pouvez facilement récupérer ces groupes.