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
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.