Comment convertir un index en colonne dans Pandas (avec exemples)



Vous pouvez utiliser la syntaxe de base suivante pour convertir un index d’un DataFrame pandas en colonne :

#convert index to column
df.reset_index(inplace=True)

Si vous disposez d’un DataFrame Pandas MultiIndex, vous pouvez utiliser la syntaxe suivante pour convertir un niveau spécifique de l’index en colonne :

#convert specific level of MultiIndex to column
df.reset_index(inplace=True, level = ['Level1'])

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : convertir l’index en colonne

Le code suivant montre comment convertir un index d’un DataFrame pandas en colonne :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#view DataFrame
df

points	assists	rebounds
0	25	5	11
1	12	7	8
2	15	7	10
3	14	9	6
4	19	12	6

#convert index to column
df.reset_index(inplace=True)

#view updated DataFrame
df

	index	points	assists	rebounds
0	0	25	5	11
1	1	12	7	8
2	2	15	7	10
3	3	14	9	6
4	4	19	12	6

Exemple 2 : convertir un MultiIndex en colonnes

Supposons que nous ayons le DataFrame pandas MultiIndex suivant :

import pandas as pd

#create DataFrame
index_names = pd.MultiIndex.from_tuples([('Level1','Lev1', 'L1'),
                                       ('Level2','Lev2', 'L2'),
                                       ('Level3','Lev3', 'L3'),
                                       ('Level4','Lev4', 'L4')],
                                       names=['Full','Partial', 'ID'])

data = {'Store': ['A','B','C','D'],
        'Sales': [17, 22, 29, 35]}

df = pd.DataFrame(data, columns = ['Store','Sales'], index=index_names)

#view DataFrame
df

                    Store    Sales
Full	Partial	ID		
Level1	Lev1	L1	A	17
Level2	Lev2	L2	B	22
Level3	Lev3	L3	C	29
Level4	Lev4	L4	D	35

Le code suivant montre comment convertir chaque niveau du MultiIndex en colonnes dans un DataFrame pandas :

#convert all levels of index to columns
df.reset_index(inplace=True)

#view updated DataFrame
df

        Full	Partial	ID	Store	Sales
0	Level1	Lev1	L1	A	17
1	Level2	Lev2	L2	B	22
2	Level3	Lev3	L3	C	29
3	Level4	Lev4	L4	D	35

Nous pourrions également utiliser le code suivant pour convertir uniquement un niveau spécifique du MultiIndex en colonne :

#convert just 'ID' index to column in DataFrame
df.reset_index(inplace=True, level = ['ID'])

#view updated DataFrame
df

		ID	Store	Sales
Full	Partial			
Level1	Lev1	L1	A	17
Level2	Lev2	L2	B	22
Level3	Lev3	L3	C	29
Level4	Lev4	L4	D	35

Notez que seul le niveau « ID » a été converti en colonne dans le DataFrame.

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans les pandas :

Comment définir la colonne comme index dans Pandas
Comment supprimer des colonnes par index dans Pandas
Comment trier DataFrame par index et colonne dans Pandas

Ajouter un commentaire

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