¿Cómo restar dos columnas en Pandas DataFrame?

En este artículo, discutiremos cómo restar dos columnas en el marco de datos de pandas en Python.

Trama de datos en uso:

Método 1: método directo 

Esta es la sintaxis del método __getitem__ ( [] ), que le permite acceder directamente a las columnas del marco de datos utilizando el nombre de la columna.

Ejemplo: restar dos columnas en el marco de datos de Pandas

Python3

import numpy as np
import pandas as pd
  
data = np.arange(0, 20).reshape(4, 5)
  
  
df1 = pd.DataFrame(data,
                   index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
                   columns=['Column 1', 'Column 2', 'Column 3',
                            'Column 4', 'Column 5'])
  
# using our previous example
# now let's subtract the values of two columns
df1['Column 1'] - df1['Column 2']

Producción: 

Método 2: Definición de una función

Podemos crear una función específicamente para restar las columnas, tomando los datos de la columna como argumentos y luego usando el método de aplicación para aplicarlo a todos los puntos de datos de la columna. 

Ejemplo: restar dos columnas en el marco de datos de Pandas

Python3

import numpy as np
import pandas as pd
  
def diff(a, b):
    return b - a
  
data = np.arange(0, 20).reshape(4, 5)
  
  
df = pd.DataFrame(data,
                  index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
                  columns=['Column 1', 'Column 2', 'Column 3',
                           'Column 4', 'Column 5'])
  
  
df['Difference_2_1'] = df.apply(
    lambda x: diff(x['Column 2'], x['Column 2']), axis=1)

Producción : 

Método 3: Usando apply()

Dado que la operación que queremos realizar es simple, podemos usar directamente el método apply() sin definir explícitamente una función. Proporcione el argumento del eje como 1 para acceder a las columnas. 

Sintaxis:

s.apply(func, convert_dtype=True, args=())

Parámetros:

  • func: .apply toma una función y la aplica a todos los valores de la serie pandas.
  • convert_dtype: convierte dtype según la operación de la función.
  • args=(): Argumentos adicionales para pasar a función en lugar de serie.

Tipo de retorno: Serie Pandas después de la función/operación aplicada.

Ejemplo: Resta dos columnas en Pandas Dataframe 

Python3

import pandas as pd
import numpy as np
  
data = np.arange(0, 20).reshape(4, 5)
  
  
df = pd.DataFrame(data,
                  index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
                  columns=['Column 1', 'Column 2', 'Column 3',
                           'Column 4', 'Column 5'])
  
  
df['diff_3_4'] = df.apply(lambda x: x['Column 3'] - x['Column 4'], axis=1)
df

Producción:

Método 4: usar el método de asignación

El método de asignación() asigna nuevas columnas a un DataFrame, devolviendo un nuevo objeto (una copia) con las nuevas columnas agregadas a las originales. 

Ejemplo: restar dos columnas en el marco de datos de Pandas

Python3

import numpy as np
import pandas as pd
  
data = np.arange(0, 20).reshape(4, 5)
  
  
df = pd.DataFrame(data,
                  index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
                  columns=['Column 1', 'Column 2', 'Column 3',
                           'Column 4', 'Column 5'])
  
  
df = df.assign(diff_1_5=df['Column 1'] - df['Column 5'])
  
df

Producción : 

Publicación traducida automáticamente

Artículo escrito por bobde_yagyesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *