Panda: come selezionare le colonne in base alla condizione


È possibile utilizzare i seguenti metodi per selezionare le colonne in un DataFrame panda in base alla condizione:

Metodo 1: seleziona le colonne con almeno una riga che soddisfa la condizione

 #select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]

Metodo 2: seleziona le colonne in cui tutte le righe soddisfano la condizione

 #select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]

Metodo 3: seleziona colonne con almeno una riga che soddisfa più condizioni

 #select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]

Gli esempi seguenti mostrano come utilizzare ciascun metodo con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' apples ': [7, 3, 3, 4, 3],
                   ' oranges ': [2, 0, 2, 0, 1],
                   ' bananas ': [5, 0, 4, 0, 12]},
                    index=[' Farm1 ',' Farm2 ',' Farm3 ',' Farm4 ',' Farm5 '])

#view DataFrame
print (df)

       apples oranges bananas
Farm1 7 2 5
Farm2 3 0 0
Farm3 3 2 4
Farm4 4 0 0
Farm5 3 1 12

Esempio 1: seleziona le colonne per le quali almeno una riga soddisfa la condizione

Possiamo utilizzare il seguente codice per selezionare colonne dal DataFrame in cui almeno una riga nella colonna ha un valore maggiore di 2:

 #select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]

	apples bananas
Farm1 7 5
Farm2 3 0
Farm3 3 4
Farm4 0 0
Farm5 3 12

Tieni presente che le colonne delle mele e delle banane vengono entrambe restituite poiché queste colonne hanno almeno una riga con un valore maggiore di 2.

Esempio 2: seleziona le colonne in cui tutte le righe soddisfano la condizione

Possiamo utilizzare il seguente codice per selezionare le colonne dal DataFrame in cui ogni riga nella colonna ha un valore maggiore di 2:

 #select columns where every row has a value greater than 2
df. loc [:, (df > 2 ). all ()]

	apples
Farm1 7
Farm2 3
Farm3 3
Farm4 4
Farm5 3

Tieni presente che viene restituita solo la colonna delle mele perché è l’unica colonna in cui ogni riga nella colonna ha un valore maggiore di 2.

Esempio 3: selezionare le colonne per le quali almeno una riga soddisfa diverse condizioni

Possiamo utilizzare il seguente codice per selezionare le colonne dal DataFrame in cui almeno una riga nella colonna ha un valore compreso tra 10 e 15:

 #select columns where every row has a value greater than 2
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]

	bananas
Farm1 5
Farm2 0
Farm3 4
Farm4 0
Farm5 12

Tieni presente che viene restituita solo la colonna banane perché è l’unica colonna in cui almeno una riga nella colonna ha un valore compreso tra 10 e 15.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come selezionare le colonne per nome in Pandas
Come selezionare le colonne per indice in Pandas
Come selezionare colonne contenenti una stringa specifica in Pandas

Aggiungi un commento

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