Pandas tapaus Milloin

Pandas Tapaus Milloin



Kun ehto täyttyy tai täyttyy, tapauslauseke pandakielellä antaa tulosteen tai palauttaa arvon. Tapauslausunto mahdollistaa muuttujan arvon vertaamisen potentiaalisten arvojen alueelle. Kun arvojoukkoon viitataan tai se välitetään case-lauseessa, jokainen joukon sisällä oleva arvo tarkistetaan käskyn sisällä olevien tapausten tai ehtojen mukaan. Voimme myös käyttää if-else -lausetta saman toiminnon suorittamiseen. Jos tietty ehto on tosi, if-else-lause suorittaa komentosarjan osan. If-else-lause sanoo, että suorita tämä, jos ehto on tosi, ja tee se, jos se ei ole. Tässä opetusohjelmassa suoritamme erilaisia ​​operaatioita käyttämällä case-lauseita ja if-else-lauseita.

Kuinka Pandas-tapausselostetta käytetään?

Tapauslausuntoja voidaan luoda useilla tavoilla. NumPy where()-funktio, joka käyttää seuraavaa perussyntaksia, on yksinkertaisin tapa rakentaa tapauslauseke Pandas DataFrame:ssa:

df [ 'sarakkeen nimi' ] = np.where ( kunto 1 , 'arvo1',
np. missä ( kunto kaksi , 'arvo2',
np. missä ( kunto 3 , 'arvo3', 'arvo4' ) ) )







Yllä oleva lauseke tarkistaa arvon jokaisen ehdon ja, jos ehto täyttyy, tuottaa tulosteen tai palauttaa arvon ehtoa vastaan.



Esimerkki # 1: Pandan tapauslauseke käyttäen where()-funktiota

Luodaan ensin tietokehys, jotta voimme käyttää tapauslausumaamme. Tietokehyksen luomiseksi tuomme ensin numpy- ja pandas-moduulit, jotta voimme käyttää niiden toimintoja. Pd.Dataframe() käytetään tietokehyksemme luomiseen.







Olemme luoneet df-tietokehyksen. Python-sanakirja välitetään pd:n sisällä.DataFrame() toimii argumenttina avaimien ja arvojen kanssa. Käytämme print()-funktiota nähdäksemme datakehyksemme.



'df'-tietokehyksessä on kaksi saraketta 'name' ja 'marks', joiden arvot ovat ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] ja [4, 6 , 8, 6, 9, 10]. Oletetaan, että tämä nimi on sarakkeet, joissa on opiskelijoiden nimet, ja sarake 'pisteet' tallentaa jonkin viimeaikaisen kokeen pisteet. Nyt kirjoitamme tapauslausekkeen, joka lisää uuden sarakkeen nimeltä 'huomautukset', jonka arvot perustuvat määrittämiimme arvoihin kullekin ehdolle.

'Numpy.where()'-menetelmä tarjoaa elementtiindeksit syötetaulukosta, sarakkeesta tai luettelosta, jotka täyttävät määritetyn ehdon. Yllä olevassa kytkintapauksessa np.where()-funktio tarkistaa jokaisen 'marks' -sarakkeiden elementin. Jos arvo on yhtä suuri tai pienempi kuin 5, se palauttaa tuloksena 'epäonnistuneen'. Jos arvo on pienempi tai yhtä suuri kuin 7, se palauttaa tyydyttävän, ja jos arvo on pienempi tai yhtä suuri kuin 9, se palauttaa arvon 'suuri'. Jos niitä ei ole, tulos on erinomainen.

Kuten voidaan huomata, uusi sarake 'huomautukset' luodaan 'df'-tietokehykseemme, joka tallentaa yllä olevan tapauslausekkeen palauttamat arvot.

Esimerkki 2:

Kokeillaan yllä olevaa tapauslauseketta uudelleen eri tietokehyksellä. Oletetaan, että meidän on luokiteltava pelaajat edellisen jalkapalloturnauksen kokonaismaalien perusteella. Tehdään siis tietokehys jalkapalloilijaennätysten tallentamiseksi.

Olemme luoneet tietokehyksemme pd.DataFrame() -funktion sisällä sanakirjan, jossa on avaimet 'name' ja 'goals'. Tietokehyksemme tulostamiseen käytämme tulostustoimintoa.

Kuten yllä olevasta tietokehyksestä voidaan nähdä, meillä on kaksi saraketta: 'nimi' ja 'tavoitteet'. Sarakkeen nimessä on pelaajien nimet ['John', 'Marty', 'Clay', 'Nick', 'Mike', 'Alex', 'Tom', 'Rocky']. Maalit-sarakkeessa on kunkin pelaajan edellisessä turnauksessa tekemien maalien kokonaismäärä. Käytämme nyt tapausselostettamme arvioidaksemme näitä pelaajia heidän tekemiensä maalien perusteella.

Yllä oleva tapaus luodaan käyttämällä where()-funktiota. Kotelon sisällä lausefunktio tarkistaa jokaisen 'merkit' -sarakkeiden elementin ehtojen perusteella. Jos arvo sarakkeessa 'tavoitteet' on yhtä suuri tai pienempi kuin 5, se palauttaa 'C'. Jos arvo sarakkeessa 'tavoitteet' on yhtä suuri tai pienempi kuin 9, se palauttaa 'B'. Se palauttaa A:n, jos tavoitteet-sarakkeen arvo on yhtä suuri tai suurempi kuin 10. Lausekkeen palauttamat arvot tallennetaan uuteen sarakkeeseen 'rating'. Tulostetaan 'df' nähdäksesi tulokset.

Uusi sarake 'luokitus' on luotu onnistuneesti käyttämällä yllä olevaa komentosarjaa.

Esimerkki # 3: Pandas if-else-lauseke Käytä()-funktiota

Tietokehyksen rivi- tai sarakeakselia käyttää apply()-menetelmä funktion toteuttamiseen. Voimme luoda oman määritellyn funktiomme ja käyttää sitä tietokehyksessämme pandoissa. Se sisältää jos-else-ehdot. Luodaan ensin tietokehys, jonka jälkeen luomme funktion, jossa käytämme if-else-lausetta tuloksen luomiseen. Tietokehyksen luomiseksi tuomme ensin pandan moduulin, jonka jälkeen välitämme sanakirjan pd.DataFrame()-metodissa.

Kuten voidaan nähdä, tietokehyksemme koostuu kahdesta sarakkeesta 'A', joihin on tallennettu numeerisia arvoja [23, 35, 64, 74, 85] ja 'B' arvoilla [45, 34, 61, 89, 27]. Nyt luomme funktion, joka määrittää, mikä arvo on suurempi molemmissa sarakkeissa datakehyksemme kullakin rivillä.

Voit käyttää Python lambda -funktiota 'pandas. DataFrame.apply()' lausekkeen suorittamiseksi. Pythonissa lambda-funktio on kompakti anonyymi funktio, joka hyväksyy minkä tahansa määrän argumentteja ja suorittaa lausekkeen. Yllä olevassa skriptissä olemme luoneet ehtolausekkeen, joka vertaa molempien sarakkeiden arvoja ja tallentaa tuloksen uuteen 'vertailu' -sarakkeeseen. Jos sarakkeen A arvo on pienempi kuin sarakkeen B arvo, se palauttaa 'B on suurempi'. Jos ehto ei täyty, se palauttaa 'A on suurempi'.

Esimerkki 4:

Kokeillaan toista esimerkkiä käyttämällä if-else-käskyä apply()-funktion sisällä toisen tietokehyksen kanssa.

Oletetaan, että tietokehyksemme tallentaa tiedot jonkin yrityksen työntekijöistä. Sarake 'emp' tallentaa työntekijöiden nimet ['Franky', 'Harry', 'Luke', 'Peter', 'Andrew'], kun taas sarake 'palkka' tallentaa jokaisen työntekijän palkat [1350, 1000, 900 , 1200, 980] df-tietokehyksessä. Nyt luomme if-else-lauseemme käyttämällä apply()-metodia.

Yllä oleva ehto tarkistaa jokaisen arvon sarakkeessa 'palkka' ja lisää 200 niiden työntekijöiden palkkoihin, joiden palkan arvo on pienempi tai yhtä suuri kuin 1000. Olemme tallentaneet apply()-funktiosta palautetut arvot uuteen sarakkeeseen ' lisäys'. Katsotaanpa tuloksia yllä olevasta skriptistä.

Kuten näet, funktio on onnistuneesti lisännyt 200 arvoihin, jotka olivat pienempiä tai yhtä suuria kuin 100. Arvot, jotka olivat suurempia kuin 1000, pysyivät ennallaan.

Johtopäätös:

Tässä opetusohjelmassa olemme nähneet, että kun ehto täyttyy, tämän tyyppinen lauseke, jota kutsutaan tapauslauseeksi, palauttaa arvon. Olemme nähneet, kuinka voit luoda tapauslausunnon vaaditun toiminnon tai tehtävän suorittamiseksi. Tässä opetusohjelmassa olemme käyttäneet funktiota np.where() ja funktiota apply() tapauslauseiden luomiseen. Otimme käyttöön muutamia esimerkkejä, joiden tarkoituksena on opettaa sinulle, kuinka panda-tapauslausekkeita käytetään käyttämällä where()-funktiota ja kuinka käyttää Apply()-funktiota tapauslausekkeiden luomiseen.