Come scrivere una dichiarazione su un caso in panda (con esempio)


Un’istruzione case è un tipo di istruzione che scorre ciclicamente le condizioni e restituisce un valore quando viene soddisfatta la prima condizione.

Il modo più semplice per implementare un’istruzione case in un Pandas DataFrame è utilizzare la funzione NumPywhere() , che utilizza la seguente sintassi di base:

 df[' new_column '] = np. where (df[' col2 ']<9, 'value1',
                   n.p. where (df[' col2 ']<12, 'value2',
                   n.p. where (df[' col2 ']<15, 'value3', 'value4')))

Questa particolare funzione esamina il valore nella colonna chiamata col2 e restituisce:

  • value1 ” se il valore in col2 è inferiore a 9
  • value2 ” se il valore in col2 è inferiore a 12
  • value3 ” se il valore in col2 è inferiore a 15
  • value4 ” se nessuna delle condizioni precedenti è vera

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

Esempio: istruzione case in Pandas

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' player ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' points ': [6, 8, 9, 9, 12, 14, 15, 17, 19, 22]})

#view DataFrame
df

	player points
0 1 6
1 2 8
2 3 9
3 4 9
4 5 12
5 6 14
6 7 15
7 8 17
8 9 19
9 10 22

Possiamo utilizzare la seguente sintassi per scrivere un’istruzione case che crea una nuova colonna chiamata class i cui valori sono determinati dai valori nella colonna points :

 #add 'class' column using case-statement logic
df[' class '] = np. where (df[' points ']<9, 'Bad',
              n.p. where (df[' points ']<12, 'OK',
              n.p. where (df[' points ']<15, 'Good', 'Great')))

#view updated DataFrame
df

	player points class
0 1 6 Bad
1 2 8 Bad
2 3 9 OK
3 4 9 OK
4 5 12 Good
5 6 14 Good
6 7 15 Great
7 8 17 Great
8 9 19 Great
9 10 22 Great

L’istruzione case ha esaminato il valore nella colonna dei punti e ha restituito:

  • Cattivo ” se il valore nella colonna dei punti era inferiore a 9
  • OK ” se il valore nella colonna punti era inferiore a 12
  • Buono ” se il valore nella colonna dei punti era inferiore a 15
  • Ottimo ” se nessuna delle condizioni precedenti è vera

Nota : puoi trovare la documentazione completa per la funzione NumPywhere() qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in Panda:

Come creare una nuova colonna basata su una condizione in Pandas
Come utilizzare la funzione NumPy Where() con più condizioni

Aggiungi un commento

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