pandas

Comment utiliser Group by dans Pandas Python

Comment utiliser Group by dans Pandas Python
Le groupe Pandas par fonction est utilisé pour regrouper des objets ou des colonnes DataFrames en fonction de conditions ou de règles particulières. En utilisant la fonction groupby, la gestion des jeux de données est plus facile. Cependant, tous les enregistrements liés peuvent être organisés en groupes. En utilisant la bibliothèque Pandas, vous pouvez implémenter le groupe Pandas par fonction pour regrouper les données selon différents types de variables. La plupart des développeurs ont utilisé trois techniques de base pour le groupe par fonction. Premièrement, le fractionnement dans lequel 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 allons parcourir les utilisations de base d'un groupe par fonction dans le python de panda. 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 base de données avec quelques détails utiles sur les employés (Employee_Names, Designation, Employee_city, Age).

Concaténation de chaînes à l'aide de Group by Function

En utilisant la fonction groupby, vous pouvez concaténer des chaînes. Les mêmes enregistrements peuvent être joints avec ',' dans une seule cellule.

Exemple

Dans l'exemple suivant, nous avons trié les données en fonction de la colonne « Désignation » des employés et avons joint les employés qui ont la même désignation. La fonction lambda est appliquée sur 'Employees_Name'.

importer des pandas au format pd
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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 : ','.join(Employee_Names))
imprimer (df1)

Lorsque le code ci-dessus est exécuté, la sortie suivante s'affiche :

Trier les valeurs par ordre croissant

Utilisez l'objet groupby dans un cadre de données normal en appelant '.to_frame()', puis utilisez reset_index() pour la réindexation. Trier les valeurs des colonnes en appelant sort_values().

Exemple

Dans cet exemple, nous allons trier l'âge de l'employé par 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 au format pd
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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(by='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 à la même 'Employee_city'.

importer des pandas au format pd
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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 dans la sortie suivante, sous les colonnes Designation, Employee_Names et Employee_Age, comptez les nombres qui appartiennent à la même ville :

Visualiser les données à l'aide de groupby

En utilisant le 'import matplotlib.pyplot', vous pouvez visualiser vos données sous forme de graphiques.

Exemple

Ici, l'exemple suivant visualise 'Employee_Age' avec 'Employee_Nmaes' à partir du DataFrame donné en utilisant l'instruction groupby.

importer des pandas au format pd
importer matplotlib.pyplot en tant que plt
cadre de données = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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().plot(kind='bar')
plt.spectacle()

Exemple

Pour tracer le graphique empilé à l'aide de groupby, activez « stacked=true » et utilisez le code suivant :

importer des pandas au format pd
importer matplotlib.pyplot en tant que plt
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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().désempiler().plot(kind='bar', stacked=True, fontsize='6')
plt.spectacle()

Dans le graphique ci-dessous, le nombre d'employés empilés qui appartiennent à la même ville.

Changer le nom de la colonne avec le groupe en

Vous pouvez également changer le nom de la colonne agrégée avec un nouveau nom modifié comme suit :

importer des pandas au format pd
importer matplotlib.pyplot en tant que plt
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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 'Désignation' est remplacé par 'Employé_Désignation'.

Récupérer le groupe par clé ou valeur

En utilisant l'instruction groupby, vous pouvez récupérer des enregistrements ou des valeurs similaires à partir de la trame de données.

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 au format pd
importer matplotlib.pyplot en tant que plt
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city' :['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age' :[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extraire_valeur = df.groupby('Désignation')
print(extraire_valeur.get_group('Personnel'))

Le résultat suivant s'affiche dans la fenêtre de sortie :

Ajouter de la valeur dans la liste du groupe

Des données similaires peuvent être affichées sous forme de 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 des groupes. Tous les employés sont répartis dans le groupe basé sur 'Employee_city', puis en appliquant la fonction 'Lambda', ce groupe est récupéré sous forme de liste.

importer des pandas au format pd
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'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 Transform avec groupby

Les salariés sont regroupés selon leur âge, ces valeurs additionnées, et en utilisant la fonction 'transformer' une nouvelle colonne est ajoutée dans le tableau :

importer des pandas au format pd
df = pd.Trame de données(
'Employee_Names' :['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Désignation' :['Manager', 'Staff', 'IT Officer', 'IT Officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city' :['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age' :[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df['somme']=df.groupby(['Employee_Names'])['Employee_Age'].transformer('somme')
imprimer (df)

Conclusion

Nous avons exploré les différentes utilisations de la déclaration groupby 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.

Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...