Soustraire deux colonnes d'un DataFrame de Pandas

  1. Utilisez la syntaxe __getitem__ ([]) pour soustraire deux colonnes dans les Pandas
  2. Utiliser une fonction pour soustraire deux colonnes dans Pandas
  3. Utiliser la méthode assign() pour soustraire deux colonnes dans les pandas

Les Pandas peuvent traiter de très grands ensembles de données et possèdent une variété de caractéristiques et d’opérations qui peuvent être appliquées aux données.

Une de ces opérations simples est la soustraction de deux colonnes et le stockage du résultat dans une nouvelle colonne, qui sera abordée dans ce tutoriel. Cette tâche simple peut être effectuée de plusieurs façons. Nous allons calculer la différence entre les colonnes a et d de la DataFrame suivante.

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

print(df)

Production :

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6

Utilisez la syntaxe __getitem__ ([]) pour soustraire deux colonnes dans les Pandas

La façon la plus simple de soustraire deux colonnes est d’accéder aux colonnes requises et de créer une nouvelle colonne en utilisant la syntaxe __getitem__([]). Exemple :

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

df['d - a'] = df['d'] - df['a']

print(df)

Production :

    a  b   c   d  d - a
0  10  6   7   8     -2
1   1  9  12  14     13
2   5  8  10   6      1

Utiliser une fonction pour soustraire deux colonnes dans Pandas

Nous pouvons facilement créer une fonction pour soustraire deux colonnes dans les Pandas et l’appliquer aux colonnes spécifiées du DataFrame en utilisant la fonction apply(). Nous fournirons à la fonction apply() le paramètre axis et nous le mettrons à 1, ce qui indique que la fonction est appliquée aux colonnes.

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

def x(a,b):
    return a - b

df['d - a']  = df.apply(lambda f: x(f['d'],f['a']), axis=1)

print(df) 

Production :

    a  b   c   d  d - a
0  10  6   7   8     -2
1   1  9  12  14     13
2   5  8  10   6      1

Comme la soustraction des colonnes est une opération relativement facile, nous pouvons directement utiliser le mot-clé lambda pour créer des fonctions simples d’une ligne dans la fonction apply().

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

df['d - a'] = df.apply(lambda x: x['d'] - x['a'], axis = 1)

print(df)

Résultat :

    a  b   c   d  d - a
0  10  6   7   8     -2
1   1  9  12  14     13
2   5  8  10   6      1

Utiliser la méthode assign() pour soustraire deux colonnes dans les pandas

La méthode DataFrame assign() est utilisée pour ajouter une colonne à la DataFrame après avoir effectué une opération. Elle retourne un nouveau DataFrame avec toutes les colonnes originales ainsi que les nouvelles. L’exemple suivant montre comment soustraire deux colonnes en utilisant la méthode assign().

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

df = df.assign(d_minus_a = df['d'] - df['a'])

print(df)

Production :

    a  b   c   d  d_minus_a
0  10  6   7   8         -2
1   1  9  12  14         13
2   5  8  10   6          1

Article connexe - Pandas DataFrame

  • Comment créer une colonne vide dans Pandas DataFrame
  • Comment trier le DataFrame de Pandas par les valeurs d'une colonne