Restar dos columnas de un Pandas DataFrame
-
Use la sintaxis
__getitem__
([]
) para restar dos columnas en Pandas - Usar una función para restar dos columnas en Pandas
-
Usar el método
assign()
para restar dos columnas en Pandas
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 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.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma