Pandas: como encontrar a diferença entre duas colunas


Para encontrar a diferença entre duas colunas em um DataFrame do pandas, você pode usar a seguinte sintaxe:

 df[' difference '] = df[' column1 '] - df[' column2 ']

Os exemplos a seguir mostram como usar essa sintaxe na prática.

Exemplo 1: Encontre a diferença entre duas colunas

Suponha que temos o seguinte DataFrame do pandas que mostra as vendas totais para duas regiões (A e B) durante oito períodos de vendas consecutivos:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' A_sales ': [12, 14, 15, 13, 18, 20, 19, 24],
                   ' B_sales ': [14, 19, 20, 22, 24, 20, 17, 23]})

#view DataFrame
df

period A_sales B_sales
0 1 12 14
1 2 14 19
2 3 15 20
3 4 13 22
4 5 18 24
5 6 20 20
6 7 19 17
7 8 24 23

O código a seguir mostra como calcular a diferença entre as vendas da Região B e da Região A para cada período de vendas:

 #add new column to represent difference between B sales and A sales
df[' diff '] = df[' B_sales '] - df[' A_sales ']

#view DataFrame
df

        period A_sales B_sales diff
0 1 12 14 2
1 2 14 19 5
2 3 15 20 5
3 4 13 22 9
4 5 18 24 6
5 6 20 20 0
6 7 19 17 -2
7 8 24 23 -1

Também poderíamos calcular a diferença absoluta nas vendas usando a função pandas.Series.abs() :

 #add new column to represent absolute difference between B sales and A sales
df[' diff '] = pd. Series . abs (df[' B_sales '] - df[' A_sales '])

#view DataFrame
df

	period A_sales B_sales diff
0 1 12 14 2
1 2 14 19 5
2 3 15 20 5
3 4 13 22 9
4 5 18 24 6
5 6 20 20 0
6 7 19 17 2
7 8 24 23 1

Exemplo 2: Encontre a diferença entre colunas com base na condição

Também podemos filtrar o DataFrame para mostrar apenas as linhas onde a diferença entre as colunas é menor ou maior que um determinado valor.

Por exemplo, o código a seguir retorna apenas linhas em que as vendas na região A são maiores que as vendas na região B:

 #add new column to represent difference between B sales and A sales
df[' diff '] = df[' B_sales '] - df[' A_sales ']

#display rows where sales in region A is greater than sales in region B
df[df[' diff ']< 0 ]


        period A_sales B_sales diff
6 7 19 17 -2
7 8 24 23 -1

Recursos adicionais

Pandas: como encontrar a diferença entre duas linhas
Pandas: como agrupar e agregar em várias colunas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *