Comment soustraire deux colonnes dans Pandas DataFrame



Vous pouvez utiliser la syntaxe suivante pour soustraire une colonne d’une autre dans un DataFrame pandas :

#subtract column 'B' from column 'A'
df['A-B'] = df.A- df.B

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

Exemple 1 : soustraire deux colonnes dans Pandas

Le code suivant montre comment soustraire une colonne d’une autre dans un DataFrame pandas et attribuer le résultat à une nouvelle colonne :

import pandas as pd

#create DataFrame 
df = pd.DataFrame({'A': [25, 12, 15, 14, 19, 23, 25, 29],
                   'B': [5, 7, 8, 9, 12, 9, 12, 4],
                   'C': [11, 8, 10, 6, 6, 5, 9, 12]})

#subtract column B from column A
df['A-B'] = df.A - df.B

#view DataFrame
df

        A	B	C	A-B
0	25	5	11	20
1	12	7	8	5
2	15	8	10	7
3	14	9	6	5
4	19	12	6	7
5	23	9	5	14
6	25	12	9	13
7	29	4	12	25

La nouvelle colonne appelée ‘ AB ‘ affiche les résultats de la soustraction des valeurs de la colonne B des valeurs de la colonne A.

Exemple 2 : soustraire deux colonnes avec des valeurs manquantes

Si nous soustrayons une colonne d’une autre dans un DataFrame pandas et qu’il y a des valeurs manquantes dans l’une des colonnes, le résultat de la soustraction sera toujours une valeur manquante :

import pandas as pd
import numpy as np

#create DataFrame with some missing values
df = pd.DataFrame({'A': [25, 12, 15, 14, 19, 23, 25, 29],
                   'B': [5, 7, np.nan, 9, 12, np.nan, 12, 4],
                   'C': [np.nan, 8, 10, 6, 6, 5, 9, 12]}) 

#subtract column B from column A
df['A-B'] = df.A - df.B

#view DataFrame
df

	A	B	C	A-B
0	25	5.0	NaN	20.0
1	12	7.0	8.0	5.0
2	15	NaN	10.0	NaN
3	14	9.0	6.0	5.0
4	19	12.0	6.0	7.0
5	23	NaN	5.0	NaN
6	25	12.0	9.0	13.0
7	29	4.0	12.0	25.0

Si vous le souhaitez, vous pouvez remplacer toutes les valeurs manquantes dans le dataFrame par des zéros à l’aide de la fonction df.fillna(0) avant de soustraire une colonne d’une autre :

import pandas as pd
import numpy as np

#create DataFrame with some missing values
df = pd.DataFrame({'A': [25, 12, 15, 14, 19, 23, 25, 29],
                   'B': [5, 7, np.nan, 9, 12, np.nan, 12, 4],
                   'C': [np.nan, 8, 10, 6, 6, 5, 9, 12]}) 

#replace all missing values with zeros
df = df.fillna(0)

#subtract column B from column A
df['A-B'] = df.A - df.B

#view DataFrame
df
	A	B	C	A-B
0	25	5.0	0.0	20.0
1	12	7.0	8.0	5.0
2	15	0.0	10.0	15.0
3	14	9.0	6.0	5.0
4	19	12.0	6.0	7.0
5	23	0.0	5.0	23.0
6	25	12.0	9.0	13.0
7	29	4.0	12.0	25.0

Ressources additionnelles

Comment ajouter des lignes à un DataFrame Pandas
Comment ajouter un tableau Numpy à un DataFrame Pandas
Comment compter le nombre de lignes dans Pandas DataFrame

Ajouter un commentaire

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