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