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