Cas dels Pandes Quan

Cas Dels Pandes Quan



Quan una condició es compleix o es compleix, una instrucció de cas en el llenguatge pandas proporciona una sortida o retorna un valor. Una declaració de cas permet comparar el valor d'una variable amb un rang de valors potencials. Quan es fa referència al conjunt de valors o es passa a la instrucció case, cada valor dins del conjunt és comprovat pels casos o condicions dins de la instrucció. També podem utilitzar la instrucció if-else per fer la mateixa operació. Si una determinada condició és certa, la instrucció if-else fa que s'executi un fragment d'script. La declaració if-else diu que cal dur a terme això si la condició és certa i fer-ho si no ho és. En aquest tutorial, realitzarem diferents operacions utilitzant declaracions case i declaracions if-else.

Com utilitzar la declaració de cas Pandas?

Les declaracions de cas es poden crear de diverses maneres. La funció NumPy where(), que utilitza la sintaxi fonamental següent, és la manera més senzilla de construir una instrucció de cas en un Pandas DataFrame:

df [ 'nom de la columna' ] = np.on ( condició 1 , 'valor1',
np.on ( condició 2 , 'valor2',
np.on ( condició 3 , 'valor3', 'valor4' ) ) )







La instrucció anterior comprovarà el valor de cada condició i, si la condició es compleix, generarà la sortida o retornarà el valor contra la condició.



Exemple núm. 1: Declaració de cas Pandas utilitzant la funció where().

Creem primer un marc de dades perquè puguem utilitzar la nostra declaració de cas. Per crear el marc de dades, primer importarem els mòduls numpy i pandas perquè puguem utilitzar les seves funcionalitats. El pd.Dataframe() s'utilitzarà per crear el nostre marc de dades.







Hem creat el marc de dades 'df'. Un diccionari Python es passa dins del pd. DataFrame() funciona com a argument amb claus i valors. Utilitzarem la funció print() per veure el nostre marc de dades.



Al marc de dades 'df' tenim dues columnes 'nom' i 'marques' amb valors ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] i [4, 6 , 8, 6, 9,10] respectivament. Suposem que aquest nom són les columnes que emmagatzemen els noms dels estudiants i la columna 'marks' emmagatzema la puntuació d'alguna prova recent. Ara, escriurem una declaració de cas que afegeix una nova columna anomenada 'observacions' els valors de la qual es basen en els valors especificats per nosaltres, per a cada condició.

El mètode 'numpy.where()' proporciona els índexs d'elements d'una matriu, columna o llista d'entrada que compleixen la condició especificada. En el cas de canvi anterior, la funció np.where() comprova cada element de les columnes 'marks'. Si el valor és igual o inferior a 5, retornarà 'falla' com a sortida. Si el valor és menor o igual a 7, tornarà satisfactori, i si el valor és inferior o igual a 9, tornarà 'gran'. Si no n'hi ha, el resultat serà excel·lent.

Com es pot observar, la nova columna 'observacions' es crea al nostre marc de dades 'df', emmagatzemant els valors retornats per la declaració de cas anterior.

Exemple # 2:

Torneu a provar la instrucció de cas anterior amb un marc de dades diferent. Suposem que hem de qualificar els jugadors en funció dels seus objectius totals en el torneig de futbol anterior. Així doncs, fem un marc de dades per emmagatzemar els registres dels jugadors de futbol.

Hem passat un diccionari amb les claus 'nom' i 'objectius' dins de la funció pd.DataFrame() per crear el nostre marc de dades. Per imprimir el nostre marc de dades, utilitzarem la funció d'impressió.

Com es pot veure al marc de dades anterior, tenim dues columnes: 'nom' i 'objectius'. Al nom de la columna, tenim els noms dels jugadors [‘John’, ‘Marty’, ‘Clay’, ‘Nick’, ‘Mike’, ‘Alex’, ‘Tom’, ‘Rocky’]. A la 'columna' de gols tenim el total de gols marcats per cada jugador en el torneig anterior. Ara utilitzarem la nostra declaració de cas per qualificar aquests jugadors en funció dels gols que han marcat.

El cas anterior es crea mitjançant la funció where(). Dins del cas, la funció de declaració està comprovant cada element de les columnes 'marca' amb les condicions. Si el valor de la columna 'objectius' és igual o inferior a 5, retornarà 'C'. Si el valor de la columna 'objectius' és igual o inferior a 9, retornarà 'B'. Tornarà una 'A' si el valor de la columna 'objectius' és igual o superior a 10. Els valors retornats per la declaració s'emmagatzemaran a la nova columna 'puntuació'. Imprimim el 'df' per veure els resultats.

La nova columna 'puntuació' s'ha creat correctament mitjançant l'script anterior.

Exemple núm. 3: Declaració Pandas if-else utilitzant la funció apply().

El mètode apply() utilitza l'eix de fila o columna del marc de dades per implementar una funció. Podem crear la nostra pròpia funció definida i utilitzar-la al nostre marc de dades en pandas. Inclourà condicions si no. Creem primer el nostre marc de dades, després crearem una funció en la qual utilitzarem una instrucció if-else per generar el resultat. Per crear el nostre marc de dades, primer importarem el mòdul dels pandes, després passarem un diccionari dins del mètode pd.DataFrame().

Com es pot veure, el nostre marc de dades està format per dues columnes 'A' que emmagatzemen valors numèrics [23, 35, 64, 74, 85] i 'B' amb valors [45, 34, 61, 89, 27]. Ara crearem una funció que determinarà quin valor és més gran entre les dues columnes de cada fila del nostre marc de dades.

Podeu utilitzar la funció lambda de Python “pandas. DataFrame.apply()” per executar una expressió. A Python, una funció lambda és una funció anònima compacta que accepta qualsevol nombre d'arguments i executa una expressió. A l'script anterior, hem creat una declaració de condició que compararà el valor de les dues columnes i emmagatzemarà el resultat a la nova columna 'comparació'. Si el valor de la columna 'A' és menor que el valor de la columna 'B', retornarà 'B és més gran'. Si la condició no es compleix, tornarà 'A és més gran'.

Exemple # 4:

Provem un altre exemple utilitzant la instrucció if-else dins de la funció apply() amb un altre marc de dades.

Suposem que el nostre marc de dades emmagatzema registres dels empleats d'alguna empresa. La columna 'emp' emmagatzema els noms dels empleats ['Franky', 'Harry', 'Luke', 'Peter', 'Andrew'], mentre que la columna 'salari' emmagatzema els sous de cada empleat [1350, 1000, 900 , 1200, 980] al marc de dades 'df'. Ara crearem la nostra declaració if-else utilitzant el mètode apply().

La condició anterior comprovarà cada valor de la columna 'salari' i afegirà 200 als sous dels empleats on el valor del salari sigui inferior o igual a 1000. Hem emmagatzemat els valors retornats de la funció apply() a la nova columna ' increment'. Vegem els resultats de l'script anterior.

Com podeu veure, la funció ha afegit correctament 200 als valors que eren inferiors o iguals a 100. Els valors que eren superiors a 1000 es van mantenir sense canvis.

Conclusió:

En aquest tutorial, hem vist que quan es compleix la condició, una instrucció d'aquest tipus, anomenada sentència case, retorna un valor. Hem vist com podeu crear una declaració de cas per dur a terme una operació o tasca necessària. En aquest tutorial, hem utilitzat la funció np.where() i la funció apply() per crear sentències de cas. Hem implementat uns quants exemples per ensenyar-vos a utilitzar les declaracions de cas pandas mitjançant la funció where() i com utilitzar la funció apply() per crear declaracions de cas.