La différence absolue entre deux colonnes d'une DataFrame pandas peut être calculée en utilisant la fonction abs(). Exemples:
Créer une dataframe.
Pour commencer, générons une DataFrame à l'aide de données synthétiques:
import pandas as pd
import numpy as np
np.random.seed(42)
a = -100
b = 100
data = np.random.random_sample((15,3)) * (b-a) + a
df = pd.DataFrame(data=data, columns=['A','B','C'])
Le code affiché ci-dessus va générer par exemple :
A B C
0 -25.091976 90.142861 46.398788
1 19.731697 -68.796272 -68.801096
2 -88.383278 73.235229 20.223002
3 41.614516 -95.883101 93.981970
4 66.488528 -57.532178 -63.635007
5 -63.319098 -39.151551 4.951286
6 -13.610996 -41.754172 22.370579
7 -72.101228 -41.571070 -26.727631
8 -8.786003 57.035192 -60.065244
9 2.846888 18.482914 -90.709917
10 21.508970 -65.895175 -86.989681
11 89.777107 93.126407 61.679470
12 -39.077246 -80.465577 36.846605
13 -11.969501 -75.592353 -0.964618
14 -93.122296 81.864080 -48.244004
Utilisation de la fonction pandas abs()
Pour calculer la différence absolue entre deux colonnes d'une DataFrame de pandas, vous pouvez utiliser la fonction abs()
comme illustré dans l'exemple suivant :
df['A'].abs() - df['B'].abs()
Ceci créera une nouvelle colonne affichant la différence absolue entre les deux colonnes:
0 -65.050885
1 -49.064575
2 15.148048
3 -54.268586
4 8.956350
5 24.167547
6 -28.143176
7 30.530158
8 -48.249189
9 -15.636026
10 -44.386205
11 -3.349299
12 -41.388331
13 -63.622852
14 11.258215
dtype: float64
Pour obtenir la valeur absolue de la différence entre deux colonnes dans une DataFrame Pandas, une solution consiste à utiliser la fonction "abs()" sur la soustraction des deux colonnes.
( df['A'] - df['B'] ).abs()
Cela renverra alors une nouvelle colonne :
0 115.234838
1 88.527969
2 161.618507
3 137.497617
4 124.020706
5 24.167547
6 28.143176
7 30.530158
8 65.821195
9 15.636026
10 87.404146
11 3.349299
12 41.388331
13 63.622852
14 174.986376
dtype: float64
Bonus points
Enregistrer le résultat dans une nouvelle colonne
df['Abs Diff A & B'] = df['A'].abs() - df['B'].abs()
Cela créera alors une nouvelle colonne dans la dataframe df :
A B C Abs Diff A & B
0 -25.091976 90.142861 46.398788 -65.050885
1 19.731697 -68.796272 -68.801096 -49.064575
2 -88.383278 73.235229 20.223002 15.148048
3 41.614516 -95.883101 93.981970 -54.268586
4 66.488528 -57.532178 -63.635007 8.956350
5 -63.319098 -39.151551 4.951286 24.167547
6 -13.610996 -41.754172 22.370579 -28.143176
7 -72.101228 -41.571070 -26.727631 30.530158
8 -8.786003 57.035192 -60.065244 -48.249189
9 2.846888 18.482914 -90.709917 -15.636026
10 21.508970 -65.895175 -86.989681 -44.386205
11 89.777107 93.126407 61.679470 -3.349299
12 -39.077246 -80.465577 36.846605 -41.388331
13 -11.969501 -75.592353 -0.964618 -63.622852
14 -93.122296 81.864080 -48.244004 11.258215
Arrondir les valeurs absolues
Pour arrondir une colonne de la dataframe, vous pouvez utiliser la fonction round().
df['Abs Diff A & B'].round(2)
cela donnera :
0 -65.05
1 -49.06
2 15.15
3 -54.27
4 8.96
5 24.17
6 -28.14
7 30.53
8 -48.25
9 -15.64
10 -44.39
11 -3.35
12 -41.39
13 -63.62
14 11.26
Name: Abs Diff A & B, dtype: float64
Références
Liens | Site |
---|---|
pandas.DataFrame.abs | pandas.pydata.org |
How to get the absolute value of a dataframe column in pandas ? | moonbooks.org |