Pandas pandas.melt() Fonction
-
Syntaxe de
pandas.melt()
-
Exemples de codes:
pandas.melt()
-
Exemples de codes:
pandas.melt()
avec une colonne unique commeid_vars
-
Exemples de codes:
pandas.melt()
avec saut de colonnes -
Exemples de codes:
pandas.melt()
avec plusieurs colonnes
![Pandas pandas.melt() Fonction](/img/Python-Pandas/ag-feature-image---Pandas-DataFrame-DataFrame.melt-Function.webp)
La fonction pandas.melt()
remodèle ou transforme un DataFrame
existant. Il change l’orientation du DataFrame
d’un format large à un format long.
Syntaxe de pandas.melt()
pandas.melt(dataframe, id_vars, value_vars, var_name, value_name, col_level)
Paramètres
dataframe |
obligatoire | C’est le DataFrame que nous souhaitons changer en format long. |
id_vars |
optionnel | Il peut s’agir d’un tuple , d’une liste ou d’un tableau à N dimensions. Il s’agit de la colonne utilisée pour les variables d’identification. Vous pouvez sélectionner plusieurs colonnes d’identifiant. |
value_vars |
optionnel | Il peut s’agir d’un tuple , d’une liste ou d’un tableau à N dimensions. Par défaut, les colonnes non spécifiées comme variables identifiantes sont des variables de valeur. Vous pouvez également les sélectionner. |
var_name |
optionnel | Il s’agit d’une variable de type scalaire . Il s’agit du nom de la colonne identifiant. Par défaut, c’est variable . |
value_name |
optionnel | Il s’agit d’une variable de type scalaire . Il s’agit du nom de la colonne non identifiante. Par défaut, c’est value . |
col_level |
optionnel | Il s’agit d’un “entier” ou d’une string . Dans le cas de colonnes multi-index, nous pouvons utiliser ce paramètre pour transformer notre DataFrame . |
Revenir
Il retourne un DataFrame
transformé qui contient une ou plusieurs colonnes identifiantes et seulement deux colonnes non identifiantes nommées variable et valeur.
Exemples de codes: pandas.melt()
Dans un premier temps, nous vérifierons cette fonction en ne passant que le paramètre obligatoire c’est-à-dire DataFrame
.
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe)
print(dataframe1)
Notre DataFrame
ressemble
Attendance Name Obtained Marks
0 60 Olivia 90%
1 100 John 75%
2 80 Laura 82%
3 78 Ben 64%
4 95 Kevin 45%
Production:
variable value
0 Attendance 60
1 Attendance 100
2 Attendance 80
3 Attendance 78
4 Attendance 95
5 Name Olivia
6 Name John
7 Name Laura
8 Name Ben
9 Name Kevin
10 Obtained Marks 90%
11 Obtained Marks 75%
12 Obtained Marks 82%
13 Obtained Marks 64%
14 Obtained Marks 45%
Ici, vous pouvez voir qu’en sortie il n’y a pas de colonne d’identifiant. Nous avons deux colonnes non identifiantes. Chaque colonne du DataFrame
d’origine est maintenant une ligne dans la sortie DataFrame
.
Nous allons maintenant passer les paramètres facultatifs et vérifier les résultats.
Exemples de codes: pandas.melt()
avec une colonne unique comme id_vars
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(dataframe, id_vars=["Name"])
print(dataframe1)
Production:
Name variable value
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
5 Olivia Obtained Marks 90%
6 John Obtained Marks 75%
7 Laura Obtained Marks 82%
8 Ben Obtained Marks 64%
9 Kevin Obtained Marks 45%
La colonne d’identifiant est spécifiée comme Name
, et les colonnes variable
et value
sont à côté d’elle avec les valeurs extraites de la trame de données d’origine.
Nous pourrions également attribuer des noms de var_name
et value_name
pour remplacer les variable
et valeurs
par défaut.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(
dataframe, id_vars=["Name"], var_name="Performance", value_name="Success"
)
print(dataframe1)
Production:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
5 Olivia Obtained Marks 90%
6 John Obtained Marks 75%
7 Laura Obtained Marks 82%
8 Ben Obtained Marks 64%
9 Kevin Obtained Marks 45%
Exemples de codes: pandas.melt()
avec saut de colonnes
Si nous voulons vérifier la présence uniquement, nous devons spécifier les value_vars
.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(
dataframe,
id_vars=["Name"],
value_vars="Attendance",
var_name="Performance",
value_name="Success",
)
print(dataframe1)
Production:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
Il affiche uniquement les informations de la colonne Attendance
dans la trame de données d’origine.
Exemples de codes: pandas.melt()
avec plusieurs colonnes
Nous ajoutons une colonne supplémentaire ID
à la trame de données de démonstration.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"ID": {0: 1, 1: 2, 2: 3, 3: 4, 4: 5},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(dataframe, id_vars=["ID", "Name"])
print(dataframe1)
Production:
ID Name variable value
0 1 Olivia Attendance 60
1 2 John Attendance 100
2 3 Laura Attendance 80
3 4 Ben Attendance 78
4 5 Kevin Attendance 95
5 1 Olivia Obtained Marks 90%
6 2 John Obtained Marks 75%
7 3 Laura Obtained Marks 82%
8 4 Ben Obtained Marks 64%
9 5 Kevin Obtained Marks 45%
Les colonnes ID
et Name
sont affectées en tant que colonnes identifiantes.