Zwei Spalten eines Pandas DataFrame subtrahieren

  1. Verwenden der __getitem__-Syntax ([]) zum Subtrahieren zweier Spalten in Pandas
  2. Verwenden einer Funktion zum Subtrahieren zweier Spalten in Pandas
  3. Verwenden der Methode assign() zum Subtrahieren zweier Spalten in Pandas

Pandas kann mit sehr großen Datensätzen umgehen und hat eine Vielzahl von Funktionen und Operationen, die auf die Daten angewendet werden können.

Eine solche einfache Operation ist die Subtraktion zweier Spalten und das Speichern des Ergebnisses in einer neuen Spalte, die in diesem Tutorial besprochen wird. Diese einfache Aufgabe kann auf viele Arten durchgeführt werden. Wir werden die Differenz zwischen den Spalten 'a' und 'd' des folgenden DataFrame berechnen.

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)

Ausgabe:

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

Verwenden der __getitem__-Syntax ([]) zum Subtrahieren zweier Spalten in Pandas

Der einfachste Weg, zwei Spalten zu subtrahieren, besteht darin, auf die benötigten Spalten zuzugreifen und eine neue Spalte mit der __getitem__-Syntax ([]) zu erzeugen. Beispiel:

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)

Ausgabe:

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

Verwenden einer Funktion zum Subtrahieren zweier Spalten in Pandas

Wir können ganz einfach eine Funktion zum Subtrahieren zweier Spalten in Pandas erstellen und sie mit der Funktion apply() auf die angegebenen Spalten des DataFrame anwenden. Wir werden die Funktion apply() mit dem Parameter axis versehen und diesen auf 1 setzen, was anzeigt, dass die Funktion auf die Spalten angewendet wird.

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) 

Ausgabe:

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

Da die Subtraktion von Spalten eine relativ einfache Operation ist, können wir direkt das Schlüsselwort lambda verwenden, um einfache einzeilige Funktionen in der Funktion apply() zu erstellen.

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)

Ausgabe:

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

Verwenden der Methode assign() zum Subtrahieren zweier Spalten in Pandas

Die DataFrame-Methode assign() wird verwendet, um eine Spalte zum DataFrame hinzuzufügen, nachdem eine Operation durchgeführt wurde. Sie gibt einen neuen DataFrame mit allen ursprünglichen sowie den neuen Spalten zurück. Das folgende Beispiel zeigt, wie man mit der Methode assign() zwei Spalten subtrahieren kann.

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)

Ausgabe:

    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

Verwandter Artikel - Pandas DataFrame

  • Wie erhält man einen Index aller Reihen, deren bestimmte Spalte den gegebenen Zustand in Pandas befriedigt
  • JSON-Datei in Pandas laden