Come utilizzare la funzione where() in panda (con esempi)


La funzione Where() può essere utilizzata per sostituire determinati valori in un DataFrame panda.

Questa funzione utilizza la seguente sintassi di base:

 df. where (cond, other=nan)

Per ogni valore in un DataFrame panda in cui cond è True, viene mantenuto il valore originale.

Per ogni valore in cui cond è False, il valore originale viene sostituito con il valore specificato dall’altro argomento.

I seguenti esempi mostrano come utilizzare questa sintassi in pratica con i seguenti DataFrame panda:

 import pandas as pd

#define DataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Esempio 1: sostituisci i valori nell’intero DataFrame

Il codice seguente mostra come utilizzare la funzione Where() per sostituire tutti i valori che non soddisfano una determinata condizione in un intero DataFrame panda con un valore NaN.

 #keep values that are greater than 7, but replace all others with NaN
df. where (df>7)

	points assists rebounds
0 25 NaN 11.0
1 12 NaN 8.0
2 15 NaN 10.0
3 14 9.0 NaN
4 19 12.0 NaN
5 23 9.0 NaN
6 25 9.0 9.0
7 29 NaN 12.0

Possiamo anche usare l’ altro argomento per sostituire i valori con qualcosa di diverso da NaN.

 #keep values that are greater than 7, but replace all others with 'low'
df. where (df>7, other=' low ')

	points assists rebounds
0 25 low 11
1 12 low 8
2 15 low 10
3 14 9 low
4 19 12 low
5 23 9 low
6 25 9 9
7 29 low 12

Esempio 2: sostituisci i valori in una colonna DataFrame specifica

Il codice seguente mostra come utilizzare la funzione Where() per sostituire tutti i valori che non soddisfano una determinata condizione in una colonna specifica di un DataFrame.

 #keep values greater than 15 in 'points' column, but replace others with 'low'
df[' points '] = df[' points ']. where (df[' points ']>15, other=' low ')

#view DataFrame
df

	points assists rebounds
0 25 5 11
1 low 7 8
2 low 7 10
3 low 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Puoi trovare la documentazione online completa per la funzione pandaswhere() qui .

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni nei panda:

Come utilizzare la funzione description() in Panda
Come utilizzare la funzione idxmax() in Panda
Come applicare una funzione alle colonne selezionate in Pandas

Aggiungi un commento

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