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