Pandas : comment trouver la différence entre deux colonnes



Pour trouver la différence entre deux colonnes dans un DataFrame pandas, vous pouvez utiliser la syntaxe suivante :

df['difference'] = df['column1'] - df['column2']

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

Exemple 1 : Trouver la différence entre deux colonnes

Supposons que nous ayons le DataFrame pandas suivant qui montre les ventes totales pour deux régions (A et B) pendant huit périodes de vente consécutives :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8],
                   'A_sales': [12, 14, 15, 13, 18, 20, 19, 24],
                   'B_sales': [14, 19, 20, 22, 24, 20, 17, 23]})

#view DataFrame
df

period	A_sales	B_sales
0	1	12	14
1	2	14	19
2	3	15	20
3	4	13	22
4	5	18	24
5	6	20	20
6	7	19	17
7	8	24	23

Le code suivant montre comment calculer la différence entre les ventes de la région B et de la région A pour chaque période de vente :

#add new column to represent difference between B sales and A sales
df['diff'] = df['B_sales'] - df['A_sales']

#view DataFrame
df

        period	A_sales	B_sales	 diff
0	1	12	14	 2
1	2	14	19	 5
2	3	15	20	 5
3	4	13	22	 9
4	5	18	24	 6
5	6	20	20	 0
6	7	19	17	-2
7	8	24	23	-1

Nous pourrions également calculer la différence absolue des ventes en utilisant la fonction pandas.Series.abs() :

#add new column to represent absolute difference between B sales and A sales
df['diff'] = pd.Series.abs(df['B_sales'] - df['A_sales'])

#view DataFrame
df

	period	A_sales	B_sales	diff
0	1	12	14	2
1	2	14	19	5
2	3	15	20	5
3	4	13	22	9
4	5	18	24	6
5	6	20	20	0
6	7	19	17	2
7	8	24	23	1

Exemple 2 : Trouver la différence entre les colonnes en fonction de la condition

Nous pouvons également filtrer le DataFrame pour afficher uniquement les lignes où la différence entre les colonnes est inférieure ou supérieure à une certaine valeur.

Par exemple, le code suivant renvoie uniquement les lignes dans lesquelles les ventes de la région A sont supérieures aux ventes de la région B :

#add new column to represent difference between B sales and A sales
df['diff'] = df['B_sales'] - df['A_sales']

#display rows where sales in region A is greater than sales in region B
df[df['diff']<0]


        period	A_sales	B_sales	diff
6	7	19	17	-2
7	8	24	23	-1

Ressources additionnelles

Pandas : comment trouver la différence entre deux lignes
Pandas : comment regrouper et agréger sur plusieurs colonnes

Ajouter un commentaire

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