Restar dos columnas de un Pandas DataFrame

Manav Narula 30 enero 2023
  1. Use la sintaxis __getitem__ ([]) para restar dos columnas en Pandas
  2. Usar una función para restar dos columnas en Pandas
  3. Usar el método assign() para restar dos columnas en Pandas
Restar dos columnas de un Pandas DataFrame

Los pandas pueden manejar grandes conjuntos de datos y tienen una variedad de características y operaciones que se pueden aplicar a los datos.

Una de estas operaciones sencillas es la sustracción de dos columnas y el almacenamiento del resultado en una nueva columna, que se tratará en este tutorial. Esta sencilla tarea puede realizarse de muchas maneras. Vamos a calcular la diferencia entre la columna 'a' y 'd' del siguiente DataFrame.

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)

Producción :

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

Use la sintaxis __getitem__ ([]) para restar dos columnas en Pandas

La forma más simple de restar dos columnas es acceder a las columnas requeridas y crear una nueva columna usando la sintaxis __getitem__([]). Ejemplo:

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)

Producción :

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

Usar una función para restar dos columnas en Pandas

Podemos crear fácilmente una función para restar dos columnas en Pandas y aplicarla a las columnas especificadas del DataFrame usando la función apply(). Proporcionaremos a la función apply() el parámetro axis y la pondremos a 1, lo que indica que la función se aplica a las columnas.

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)

Producción :

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

Dado que la sustracción de columnas es una operación relativamente fácil, podemos usar directamente la palabra clave lambda para crear funciones simples de una línea en la función 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)

Producción :

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

Usar el método assign() para restar dos columnas en Pandas

El método assign() del DataFrame se utiliza para añadir una columna al DataFrame después de realizar alguna operación. Devuelve un nuevo DataFrame con todas las columnas originales y las nuevas. El siguiente ejemplo mostrará cómo restar dos columnas usando el método 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)

Producción :

    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
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Pandas DataFrame