Comment décaler une colonne dans Pandas : avec des exemples



Vous pouvez utiliser la fonction shift() pour décaler les valeurs d’une colonne vers le haut ou vers le bas dans un DataFrame pandas :

#shift values down by 1
df['column1'] = df['column1'].shift(1)

#shift values up by 1
df['column1'] = df['column1'].shift(-1)

Les exemples suivants montrent comment utiliser cette fonction en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'product': ['A', 'B', 'C', 'D', 'E', 'F'],
                   'sales': [4, 7, 8, 12, 15, 19]})

#view DataFrame
df

        product	sales
0	A	4
1	B	7
2	C	8
3	D	12
4	E	15
5	F	19

Exemple 1 : déplacer une colonne vers le haut ou vers le bas

Le code suivant montre comment décaler toutes les valeurs de la colonne « produit » vers le bas de 1 :

#shift all 'product' values down by 1
df['product'] = df['product'].shift(1)

#view updated DataFrame
df

	product	sales
0	NaN	4
1	A	7
2	B	8
3	C	12
4	D	15
5	E	19

Notez que chaque valeur de la colonne « produit » a été décalée de 1 et que la première valeur de la colonne a été remplacée par NaN.

Notez également que la dernière valeur de la colonne produit (« F ») a été entièrement supprimée du DataFrame.

Pour conserver la valeur « F » dans le DataFrame, nous devons d’abord ajouter une ligne vide au bas du DataFrame, puis effectuer le décalage :

import numpy as np

#add empty row to bottom of DataFrame
df.loc[len(df.index)] = [np.nan, np.nan]

#shift all 'product' values down by 1
df['product'] = df['product'].shift(1)

#view updated DataFrame
df

	product	sales
0	NaN	4.0
1	A	7.0
2	B	8.0
3	C	12.0
4	D	15.0
5	E	19.0
6	F	NaN

Notez que la valeur « F » est conservée comme dernière valeur dans la colonne « produit ».

Exemple 2 : déplacer plusieurs colonnes vers le haut ou vers le bas

Le code suivant montre comment décaler toutes les valeurs des colonnes « produit » et « ventes » vers le haut de 2 :

#shift all 'product' and 'sales' values up by 2
df[['product', 'sales']] = df[['product', 'sales']].shift(-2)

#view updated DataFrame
df

        product	sales
0	C	8.0
1	D	12.0
2	E	15.0
3	F	19.0
4	NaN	NaN
5	NaN	NaN

Notez que chaque valeur des colonnes « produit » et « ventes » a été décalée de 2 vers le haut et que les deux valeurs inférieures de chaque colonne ont été remplacées par NaN.

Remarque : Vous pouvez trouver la documentation complète de la fonction shift() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment ajouter des lignes à un DataFrame Pandas
Comment ajouter une colonne à un DataFrame Pandas
Comment ajouter une ligne d’en-tête à un DataFrame Pandas

Ajouter un commentaire

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