Come confrontare tre colonne in panda (con esempio)


Puoi utilizzare la seguente sintassi di base per confrontare i valori di tre colonne in panda:

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

Questa sintassi crea una nuova colonna chiamata all_matching che restituisce True se tutte le colonne hanno valori corrispondenti, altrimenti restituisce False .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: confronta tre colonne in Pandas

Supponiamo di avere i seguenti panda DataFrame con tre colonne:

 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

Possiamo utilizzare il codice seguente per creare una nuova colonna chiamata all_matching che restituisce True se tutte e tre le colonne corrispondono in una determinata riga e False in caso contrario:

 #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

La nuova colonna chiamata all_matching indica se i valori nelle tre colonne corrispondono o meno in una determinata riga.

Per esempio:

  • Tutti e tre i valori corrispondono nella prima riga, quindi viene restituito True .
  • Non tutti i valori corrispondono nella seconda riga, quindi viene restituito False .

E così via.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Come rinominare le colonne in Pandas
Come aggiungere una colonna a un DataFrame Pandas
Come modificare l’ordine delle colonne in Pandas DataFrame

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *