Como comparar três colunas em pandas (com exemplo)


Você pode usar a seguinte sintaxe básica para comparar os valores de três colunas no pandas:

 df[' all_matching '] = df. apply ( lambda x: x.col1 == x.col2 == x.col3 , axis = 1 )

Esta sintaxe cria uma nova coluna chamada all_matching que retorna True se todas as colunas tiverem valores correspondentes, caso contrário retorna False .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: compare três colunas no Pandas

Suponha que temos o seguinte DataFrame do pandas com três colunas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' A ': [4, 0, 3, 3, 6, 8, 7, 9, 12],
                   ' B ': [4, 2, 3, 5, 6, 4, 7, 7, 12],
                   ' C ': [4, 0, 3, 5, 5, 10, 7, 9, 12]})

#view DataFrame
print (df)

    ABC
0 4 4 4
1 0 2 0
2 3 3 3
3 3 5 5
4 6 6 5
5 8 4 10
6 7 7 7
7 9 7 9
8 12 12 12

Podemos usar o código a seguir para criar uma nova coluna chamada all_matching que retorna True se todas as três colunas corresponderem em uma determinada linha e False se não corresponderem:

 #create new column that displays whether or not all column values match
df[' all_matching '] = df. apply ( lambda x: x. A == x. B == x. C , axis = 1 )

#view updated DataFrame
print (df)

    ABC all_matching
0 4 4 4 True
1 0 2 0 False
2 3 3 3 True
3 3 5 5 False
4 6 6 5 False
5 8 4 10 False
6 7 7 7 True
7 9 7 9 False
8 12 12 12 True

A nova coluna chamada all_matching indica se os valores nas três colunas correspondem ou não em uma determinada linha.

Por exemplo:

  • Todos os três valores correspondem na primeira linha, então True é retornado.
  • Nem todos os valores correspondem na segunda linha, então False é retornado.

E assim por diante.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como renomear colunas no Pandas
Como adicionar uma coluna a um DataFrame do Pandas
Como alterar a ordem das colunas no Pandas DataFrame

Add a Comment

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