Python Pandas pandas.pivot_table() Fonction
-
Syntaxe de
pandas.pivot_table() -
Exemples de codes :
pandas.pivot_table() -
Exemple de codes :
pandas.pivot_table()pour spécifier une fonction agrégée multiple -
Exemple de codes :
pandas.pivot_table()pour utiliser le paramètremargins
La fonction Python Pandas pandas.pivot_table() évite la répétition des données de la DataFrame. Elle résume les données et applique différentes fonctions d’agrégation sur les données.
Syntaxe de pandas.pivot_table()
pandas.pivot_table(
data,
values=None,
index=None,
columns=None,
aggfunc="mean",
fill_value=None,
margins=False,
dropna=True,
margins_name="All",
observed=False,
)
Paramètres
Cette fonction a plusieurs paramètres. Les valeurs par défaut de tous les paramètres sont mentionnées ci-dessus.
data |
Il s’agit de la DataFrame dont nous voulons supprimer les données répétées. |
values |
Il représente la colonne à agréger. |
index |
C’est une colonne, un grouper, un tableau ou une liste. Elle représente la colonne de données que nous voulons comme index, c’est-à-dire comme lignes. |
columns |
C’est une colonne, un grouper, un tableau ou une liste. Il représente la colonne de données que nous voulons comme colonnes dans notre tableau croisé dynamique de sortie. |
aggfunc |
C’est une fonction, une liste de fonctions, ou un dictionnaire. Il représente la fonction agrégée qui sera appliquée aux données. Si une liste de fonctions agrégées est passée, il y aura une colonne pour chaque fonction agrégée dans le tableau résultant avec le nom de la colonne en haut. |
fill_value |
C’est un scalaire. Il représente la valeur qui remplacera les valeurs manquantes dans le tableau de sortie |
margins |
Il s’agit d’une valeur booléenne. Elle représente la ligne et la colonne générées après avoir pris la somme de la ligne et de la colonne respectives. |
dropna |
Il s’agit d’une valeur booléenne. Elle élimine les colonnes dont les valeurs sont NaN de la table de sortie. |
margins_name |
Il s’agit d’une chaîne de caractères. Elle représente le nom de la ligne et de la colonne générées si la valeur des margins est True. |
observed |
Il s’agit d’une valeur booléenne. Si un mérou est catégorique, alors ce paramètre s’applique. S’il est True, il indique les valeurs observées pour les groupeurs catégoriels. S’il est False, il indique toutes les valeurs pour les groupes catégoriels |
Renvoie
Il retourne le DataFrame résumé.
Exemples de codes : pandas.pivot_table()
Creusons un peu plus cette fonction en l’implémentant.
import pandas as pd
dataframe = pd.DataFrame({
"Name":
["Olivia",
"Olivia",
"Olivia",
"Olivia",
"Meghan",
"Meghan",
"Meghan",
"Meghan"],
"Date":
["03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019"],
"Science Marks":
[10,
2,
4,
6,
8,
9,
1,
10]
})
print(dataframe)
L’exemple DataFrame est,
Name Date Science Marks
0 Olivia 03-06-2019 10
1 Olivia 04-06-2019 2
2 Olivia 03-06-2019 4
3 Olivia 04-06-2019 6
4 Meghan 03-06-2019 8
5 Meghan 04-06-2019 9
6 Meghan 03-06-2019 1
7 Meghan 04-06-2019 10
Notez que les données ci-dessus contiennent plusieurs fois la même valeur dans une colonne. Cette fonction pivot_table résumera ces données.
import pandas as pd
dataframe = pd.DataFrame(
{
"Name": [
"Olivia",
"Olivia",
"Olivia",
"Olivia",
"Meghan",
"Meghan",
"Meghan",
"Meghan",
],
"Date": [
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
],
"Science Marks": [10, 2, 4, 6, 8, 9, 1, 10],
}
)
pivotTable = pd.pivot_table(dataframe, index="Name", columns="Date")
print(pivotTable)
Production:
Science Marks
Date 03-06-2019 04-06-2019
Name
Meghan 4.5 9.5
Olivia 7.0 4.0
Ici, nous avons choisi la colonne Name comme index et la colonne Date comme colonne. La fonction a généré le résultat en se basant sur les paramètres par défaut. La fonction agrégée par défaut mean() a calculé la moyenne des valeurs.
Exemple de codes : pandas.pivot_table() pour spécifier une fonction agrégée multiple
import pandas as pd
dataframe = pd.DataFrame(
{
"Name": [
"Olivia",
"Olivia",
"Olivia",
"Olivia",
"Meghan",
"Meghan",
"Meghan",
"Meghan",
],
"Date": [
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
],
"Science Marks": [10, 2, 4, 6, 8, 9, 1, 10],
}
)
pivotTable = pd.pivot_table(
dataframe, index="Name", columns="Date", aggfunc=["sum", "count"]
)
print(pivotTable)
Production:
sum count
Science Marks Science Marks
Date 03-06-2019 04-06-2019 03-06-2019 04-06-2019
Name
Meghan 9 19 2 2
Olivia 14 8 2 2
Nous avons utilisé deux fonctions agrégées. Les colonnes de ces fonctions sont générées séparément.
Exemple de codes : pandas.pivot_table() pour utiliser le paramètre margins
import pandas as pd
dataframe = pd.DataFrame(
{
"Name": [
"Olivia",
"Olivia",
"Olivia",
"Olivia",
"Meghan",
"Meghan",
"Meghan",
"Meghan",
],
"Date": [
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
"03-06-2019",
"04-06-2019",
],
"Science Marks": [10, 2, 4, 6, 8, 9, 1, 10],
}
)
pivotTable = pd.pivot_table(
dataframe, index="Name", columns="Date", aggfunc=["sum", "count"], margins=True
)
print(pivotTable)
Production:
sum count
Science Marks Science Marks
Date 03-06-2019 04-06-2019 All 03-06-2019 04-06-2019 All
Name
Meghan 9 19 28 2 2 4
Olivia 14 8 22 2 2 4
All 23 27 50 4 4 8
Le paramètre margins a généré une nouvelle ligne nommée All et une nouvelle colonne nommée également All qui montrent la somme de la ligne et de la colonne respectivement.