Subtraia duas colunas de um DataFrame Pandas

  1. Utilize a sintaxe __getitem__ ([]) para subtrair duas colunas em Pandas
  2. Utilizar uma função para subtrair duas colunas em Pandas
  3. Utilize o assign() Método de subtracção de duas colunas em Pandas

Os Pandas podem manusear grandes conjuntos de dados e têm uma variedade de características e operações que podem ser aplicadas aos dados.

Uma dessas operações simples é a subtracção de duas colunas e o armazenamento do resultado numa nova coluna, que será discutida neste tutorial. Esta tarefa simples pode ser feita de muitas maneiras. Vamos calcular a diferença entre a coluna 'a' e 'd' do seguinte 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)

Resultado:

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

Utilize a sintaxe __getitem__ ([]) para subtrair duas colunas em Pandas

A forma mais simples de subtrair duas colunas é aceder às colunas necessárias e criar uma nova coluna utilizando a sintaxe __getitem__([]). Exemplo:

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)

Resultado:

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

Utilizar uma função para subtrair duas colunas em Pandas

Podemos facilmente criar uma função para subtrair duas colunas em Pandas e aplicá-la às colunas especificadas da DataFrame utilizando a função apply(). Forneceremos a função apply() com o parâmetro axis e definimo-la como 1, o que indica que a função é aplicada às colunas.

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) 

Resultado:

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

Uma vez que a subtracção das colunas é uma operação relativamente fácil, podemos utilizar directamente a palavra-chave lambda para criar funções simples de uma linha na função 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)

Resultado:

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

Utilize o assign() Método de subtracção de duas colunas em Pandas

O método DataFrame assign() é utilizado para adicionar uma coluna ao DataFrame após a realização de alguma operação. Retorna um novo DataFrame com todas as colunas originais, bem como as novas colunas. O exemplo seguinte mostrará como subtrair duas colunas utilizando o 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)

Resultado:

    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

Artigo relacionado - Pandas DataFrame

  • Pandas Copiar DataFrame