Pandas : Comment remodeler le DataFrame de large à long
Vous pouvez utiliser la syntaxe de base suivante pour convertir un DataFrame pandas d’un format large en un format long :
df = pd.melt(df, id_vars='col1', value_vars=['col2', 'col3', ...])
Dans ce scénario, col1 est la colonne que nous utilisons comme identifiant et col2 , col3 , etc. sont les colonnes dont nous annulons le pivotement.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : remodeler le DataFrame Pandas de large à long
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D'], 'points': [88, 91, 99, 94], 'assists': [12, 17, 24, 28], 'rebounds': [22, 28, 30, 31]}) #view DataFrame df team points assists rebounds 0 A 88 12 22 1 B 91 17 28 2 C 99 24 30 3 D 94 28 31
Nous pouvons utiliser la syntaxe suivante pour remodeler ce DataFrame d’un format large à un format long :
#reshape DataFrame from wide format to long format
df = pd.melt(df, id_vars='team', value_vars=['points', 'assists', 'rebounds'])
#view updated DataFrame
df
team variable value
0 A points 88
1 B points 91
2 C points 99
3 D points 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31
Le DataFrame est désormais dans un format long.
Nous avons utilisé la colonne « équipe » comme colonne d’identification et nous avons annulé le pivotement des colonnes « points », « passes décisives » et « rebonds ».
Notez que nous pouvons également utiliser les arguments var_name et value_name pour spécifier les noms des colonnes dans le nouveau DataFrame long :
#reshape DataFrame from wide format to long format
df = pd.melt(df, id_vars='team', value_vars=['points', 'assists', 'rebounds'],
var_name='metric', value_name='amount')
#view updated DataFrame
df
team metric amount
0 A points 88
1 B points 91
2 C points 99
3 D points 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31
Remarque : Vous pouvez trouver la documentation complète de la fonction pandas melt() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes en Python :
Comment ajouter des lignes à un DataFrame Pandas
Comment ajouter des colonnes à un DataFrame Pandas
Comment compter les occurrences de valeurs spécifiques dans Pandas DataFrame