Comment créer une table pivot dans Pandas Python

Comment créer une table pivot dans Pandas Python
Dans Panda's Python, la table de pivot comprend des sommes, des dénombrements ou des fonctions d'agrégations dérivées d'un tableau de données. Les fonctions d'agrégation peuvent être utilisées sur différentes fonctionnalités ou valeurs. Un tableau de pivot nous permet de résumer les données du tableau groupées par différentes valeurs, y compris les valeurs catégorielles de colonne.

Avant d'utiliser la table Panda's Pivot, assurez-vous de comprendre vos données et vos questions que vous essayez de résoudre dans le tableau Pivot. En utilisant cette méthode, vous pouvez produire des résultats puissants. Nous élaborerons dans cet article, comment créer une table de pivot dans Pandas Python.

Lire les données du fichier Excel

Nous avons téléchargé une base de données Excel des ventes de nourriture. Avant de commencer l'implémentation, vous devez installer certains packages nécessaires pour lire et écrire les fichiers de base de données Excel. Tapez la commande suivante dans la section terminale de votre éditeur PyCharm:

pip install 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 en tant que PD
Importer Numpy comme NP
dtfrm = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
imprimer (dtfrm)

Ici, les données sont lues dans la base de données Excel Sales Excel et transmise dans la variable DataFrame.

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

Ci-dessous, nous avons créé une table de pivot simple en utilisant la base de données de vente des aliments. Deux paramètres sont nécessaires pour créer une table de pivot. Le premier est les données que nous avons transmises dans le dataframe, et l'autre est un index.

Pivot les données sur un index

L'index est la fonctionnalité d'une table pivot qui vous permet de regrouper vos données en fonction des exigences. Ici, nous avons pris le «produit» comme index pour créer une table de pivot de base.

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["product"])
print (pivot_tble)

Le résultat suivant 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 colonne avec l'index. Par exemple, nous voulons afficher le seul unité de chaque produit dans le résultat. À cette fin, ajoutez le paramètre VALEUR dans votre table de pivot. Le code suivant vous donne le même résultat:

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = 'product', valeurs = 'unitprice')
print (pivot_tble)

Pivot les données avec multi-index

Les données peuvent être regroupées en fonction de plusieurs fonctionnalités en tant qu'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 relèvent des différentes catégories. Ainsi, vous pouvez afficher l'index «produit» et «catégorie» avec la «quantité» et «unité» disponibles de chaque produit comme suit:

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["catégorie", "produit"], valeurs = ["unitprice", "quantité"])
print (pivot_tble)

Application de la fonction d'agrégation dans la table pivot

Dans une table pivot, l'aggfunc peut être appliqué pour différentes valeurs de fonctionnalité. Le tableau résultant est le résumé des données fonctionnatives. La fonction globale s'applique aux données de votre groupe dans PIVOT_TABLE. Par défaut, la fonction agrégée est np.moyenne(). Mais, en fonction des besoins des utilisateurs, différentes fonctions agrégées peuvent s'appliquer à différentes fonctionnalités de données.

Exemple:

Nous avons appliqué des fonctions agrégées dans cet exemple. Le NP.La fonction sum () est utilisée pour la fonctionnalité «Quantité» et NP.Fonction moyenne () pour la fonctionnalité «Unitprice».

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["catégorie", "produit"], aggfunc = 'quantité': np.sum, 'unitprice': np.moyenne)
print (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 agrégée pour une fonctionnalité spécifique. Si vous ne spécifiez pas la valeur de la fonctionnalité, il agrége les fonctionnalités numériques de votre base de données. En suivant le code source donné, vous pouvez appliquer la fonction agrégée pour une fonctionnalité spécifique:

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['product'], valeurs = ['unitprice'], aggfunc = np.moyenne)
print (pivot_tble)

Différent entre les valeurs vs. Colonnes en table pivot

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 sur le haut. La fonction d'agrégation Aggfunc s'applique au champ Valeurs que vous énumérez.

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.PIVOT_TABLE (DATAFRAME, INDEX = [«CATTEMORY», «Product», «City»], Values ​​= [«UNITPRICE», «Quantité»],
colonnes = ['région'], aggfunc = [np.somme])
print (pivot_tble)

Gestion des données manquantes dans la table pivot

Vous pouvez également gérer les valeurs manquantes dans la table pivot en utilisant le 'fill_value' Paramètre. Cela vous permet de remplacer les valeurs NAN par une nouvelle valeur que vous fournissez à remplir.

Par exemple, nous avons supprimé toutes les valeurs nulles du tableau résultant ci-dessus en exécutant le code suivant et remplace les valeurs NAN par 0 dans toute la table résultante.

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ')
pivot_tble = pd.PIVOT_TABLE (DATAFRAME, INDEX = [«CATTEMORY», «Product», «City»], Values ​​= [«UNITPRICE», «Quantité»],
colonnes = ['région'], aggfunc = [np.sum], fill_value = 0)
print (pivot_tble)

Filtrage dans la table pivot

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

Importer des pandas en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / 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 (Low_price)

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 en tant que PD
Importer Numpy comme NP
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["catégorie", "ville", "région"], valeurs = ["unitprice", "quantité"], aggfunc = np.somme)
pt = pivot_tble.requête ('catégorie == ["cookies"]')
Imprimer (PT)

Sortir:

Visualisez les données de la table de pivot

Pour visualiser les données de la table de pivot, suivez la méthode suivante:

Importer des pandas en tant que PD
Importer Numpy comme NP
Importer Matplotlib.pypllot comme plt
dataframe = pd.read_excel ('c: / users / dell / bourse / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["catégorie", "produit"], valeurs = ["unitprice"])
pivot_tble.tracé (kind = 'bar');
PLT.montrer()

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 une table de pivot à partir du DataFrame à l'aide de Pandas Python. Un tableau pivot vous permet de générer des informations profondes sur vos ensembles de données. Nous avons vu comment générer une table pivot simple à l'aide de l'index multi-index et appliquer les filtres sur des tables de pivot. De plus, nous avons également montré que nous tracer les données de la table de pivot et remplir les données manquantes.