Science des données

Comment créer un tableau croisé dynamique dans Pandas Python

Comment créer un tableau croisé dynamique dans Pandas Python
Dans le python de panda, le tableau croisé dynamique comprend des fonctions de somme, de nombre ou d'agrégation dérivées d'un tableau de données. Les fonctions d'agrégation peuvent être utilisées sur différentes caractéristiques ou valeurs. Un tableau croisé dynamique nous permet de résumer les données du tableau regroupées par différentes valeurs, y compris les valeurs catégorielles des colonnes.

Avant d'utiliser le tableau croisé dynamique de panda, assurez-vous de bien comprendre vos données et les questions que vous essayez de résoudre via le tableau croisé dynamique. En utilisant cette méthode, vous pouvez produire des résultats puissants. Nous allons détailler dans cet article, comment créer un tableau croisé dynamique en pandas python.

Lire les données du fichier Excel

Nous avons téléchargé une base de données Excel des ventes de produits alimentaires. Avant de commencer l'implémentation, vous devez installer certains packages nécessaires à la lecture et à l'écriture des fichiers de base de données Excel. Tapez la commande suivante dans la section terminal de votre éditeur pycharm :

pip installer xlwt openpyxl xlsxwriter xlrd

Maintenant, lisez les données de la feuille Excel. Importez les bibliothèques de panda requises et modifiez le chemin de votre base de données. Ensuite, en exécutant le code suivant, les données peuvent être récupérées à partir du fichier.

importer des pandas au format pd
importer numpy en tant que np
dtfrm = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
imprimer (dtfrm)

Ici, les données sont lues à partir de la base de données Excel des ventes de produits alimentaires et transmises à la variable dataframe.

Créer un tableau croisé dynamique à l'aide de Pandas Python

Ci-dessous, nous avons créé un tableau croisé dynamique simple en utilisant la base de données des ventes de produits alimentaires. Deux paramètres sont nécessaires pour créer un tableau croisé dynamique. Le premier est des données que nous avons passées dans le dataframe, et l'autre est un index.

Faire pivoter des données sur un index

L'index est la fonctionnalité d'un tableau croisé dynamique qui vous permet de regrouper vos données en fonction des besoins. Ici, nous avons pris 'Product' comme index pour créer un tableau croisé dynamique de base.

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index="["Product"])
imprimer(pivot_tble)

Le résultat suivant s'affiche après l'exécution du code source ci-dessus :

Définir explicitement les colonnes

Pour plus d'analyse de vos données, définissez explicitement les noms de colonnes avec l'index. Par exemple, nous voulons afficher le seul prix unitaire de chaque produit dans le résultat. Pour cela, ajoutez le paramètre values ​​dans votre tableau croisé dynamique. Le code suivant vous donne le même résultat :

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index='Product', values='UnitPrice')
imprimer(pivot_tble)

Pivot de données avec multi-index

Les données peuvent être regroupées en fonction de plusieurs caractéristiques sous forme d'index. En utilisant l'approche multi-index, vous pouvez obtenir des résultats plus spécifiques pour l'analyse des données. Par exemple, les produits appartiennent à différentes catégories. Ainsi, vous pouvez afficher les index « Produit » et « Catégorie » avec la « Quantité » et le « Prix unitaire » disponibles de chaque produit comme suit :

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.table_pivot(dataframe,index=["Catégorie","Produit"],values=["PrixUnité", "Quantité"])
imprimer(pivot_tble)

Application de la fonction d'agrégation dans le tableau croisé dynamique

Dans un tableau croisé dynamique, l'aggfunc peut être appliqué pour différentes valeurs de caractéristiques. Le tableau résultant est la synthèse des données d'entités. La fonction d'agrégation s'applique aux données de votre groupe dans pivot_table. Par défaut, la fonction d'agrégat est np.moyenne(). Mais, en fonction des besoins des utilisateurs, différentes fonctions d'agrégation peuvent s'appliquer à différentes fonctionnalités de données.

Exemple:

Nous avons appliqué des fonctions d'agrégat dans cet exemple. Le np.La fonction sum () est utilisée pour la fonction 'Quantité' et np.Fonction Mean() pour la fonction 'UnitPrice'.

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Catégorie","Produit"], aggfunc='Quantité' : np.somme,'UnitPrice' : np.moyenne)
imprimer(pivot_tble)

Après avoir appliqué la fonction d'agrégation pour différentes fonctionnalités, vous obtiendrez la sortie suivante :

En utilisant le paramètre de valeur, vous pouvez également appliquer une fonction d'agrégation pour une caractéristique spécifique. Si vous ne spécifiez pas la valeur de la caractéristique, il agrège les caractéristiques numériques de votre base de données. En suivant le code source donné, vous pouvez appliquer la fonction d'agrégation pour une fonctionnalité spécifique :

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index=['Product'], values=['UnitPrice'], aggfunc=np.moyenne)
imprimer(pivot_tble)

Différent entre les valeurs et. Colonnes du tableau croisé dynamique

Les valeurs et les colonnes sont le principal point de confusion dans le pivot_table. Il est important de noter que les colonnes sont des champs facultatifs, affichant les valeurs du tableau résultant horizontalement en haut. La fonction d'agrégation aggfunc s'applique au champ de valeurs que vous listez.

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Category','Product', 'City'],values=['UnitPrice', 'Quantity'],
colonnes=['Région'],aggfunc=[np.somme])
imprimer(pivot_tble)

Gestion des données manquantes dans le tableau croisé dynamique

Vous pouvez également gérer les valeurs manquantes dans le tableau croisé dynamique en utilisant le 'fill_value' Paramètre. Cela vous permet de remplacer les valeurs NaN par une nouvelle valeur que vous fournissez pour remplir.

Par exemple, nous avons supprimé toutes les valeurs nulles de la table résultante ci-dessus en exécutant le code suivant et en remplaçant les valeurs NaN par 0 dans l'ensemble de la table résultante.

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Category','Product', 'City'],values=['UnitPrice', 'Quantity'],
colonnes=['Région'],aggfunc=[np.somme], fill_value=0)
imprimer(pivot_tble)

Filtrage dans le tableau croisé dynamique

Une fois le résultat généré, vous pouvez appliquer le filtre en utilisant la fonction standard dataframe. Prenons un exemple. Filtrez les produits dont le prix unitaire est inférieur à 60. Il affiche les produits dont le prix est inférieur à 60.

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe, index='Product', values='UnitPrice', aggfunc='sum')
low_price=pivot_tble[pivot_tble['UnitPrice'] < 60]
imprimer(bas_prix)

En utilisant une autre méthode de requête, vous pouvez filtrer les résultats. Par exemple, Par exemple, nous avons filtré la catégorie des cookies en fonction des fonctionnalités suivantes :

importer des pandas au format pd
importer numpy en tant que np
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Catégorie","Ville","Région"],values=["UnitPrice", "Quantité"],aggfunc=np.somme)
pt=pivot_tble.query('Catégorie == ["Cookies"]')
imprimer(pt)

Production:

Visualiser les données du tableau croisé dynamique

Pour visualiser les données du tableau croisé dynamique, suivez la méthode suivante :

importer des pandas au format pd
importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
cadre de données = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Category","Product"],values="["UnitPrice"])
pivot_tble.plot(kind='bar');
plt.spectacle()

Dans la visualisation ci-dessus, nous avons montré le prix unitaire des différents produits ainsi que les catégories.

Conclusion

Nous avons exploré comment vous pouvez générer un tableau croisé dynamique à partir du cadre de données à l'aide de Pandas python. Un tableau croisé dynamique vous permet de générer des informations approfondies sur vos ensembles de données. Nous avons vu comment générer un tableau croisé dynamique simple en utilisant le multi-index et appliquer les filtres sur les tableaux croisés dynamiques. De plus, nous avons également montré pour tracer les données du tableau croisé dynamique et remplir les données manquantes.

Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...