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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *