Pandas Slučaj Kada

Pandas Slucaj Kada



Kada je uvjet zadovoljen ili ispunjen, naredba case u pandas jeziku daje izlaz ili vraća vrijednost. Iskaz slučaja omogućuje usporedbu vrijednosti varijable s nizom potencijalnih vrijednosti. Kada se na skup vrijednosti upućuje ili prosljeđuje u naredbi case, svaka vrijednost unutar skupa provjerava se slučajevima ili uvjetima unutar naredbe. Također možemo upotrijebiti naredbu if-else da izvršimo istu operaciju. Ako je određeni uvjet istinit, naredba if-else uzrokuje izvršenje dijela skripte. Izjava if-else kaže da treba izvršiti ovo ako je uvjet istinit i učiniti to ako nije. U ovom vodiču izvodit ćemo različite operacije pomoću naredbi case i if-else naredbi.

Kako koristiti izjavu o slučaju Pandas?

Iskaz slučaja može se izraditi na nekoliko načina. Funkcija NumPy where(), koja koristi sljedeću temeljnu sintaksu, najjednostavniji je način za konstruiranje izjave slučaja u Pandas DataFrameu:

df [ 'naziv stupca' ] = np.gdje ( stanje 1 , 'vrijednost1',
np.gdje ( stanje dva , 'vrijednost2',
np.gdje ( stanje 3 , 'vrijednost3', 'vrijednost4' ) ) )







Gornja izjava provjerit će svaki uvjet za vrijednost i, ako je uvjet zadovoljen, generirati će izlaz ili vratiti vrijednost prema uvjetu.



Primjer # 1: Iskaz slučaja Pandas korištenjem where() funkcije

Kreirajmo prvo podatkovni okvir kako bismo mogli koristiti našu izjavu o slučaju. Da bismo stvorili podatkovni okvir, prvo ćemo uvesti module numpy i pandas kako bismo mogli koristiti njihove funkcije. Pd.Dataframe() će se koristiti za stvaranje našeg okvira podataka.







Stvorili smo podatkovni okvir 'df'. Python rječnik prosljeđuje se unutar funkcija pd.DataFrame() kao argument s ključevima i vrijednostima. Koristit ćemo funkciju print() da bismo vidjeli okvir podataka.



U podatkovnom okviru 'df' imamo dva stupca 'name' i 'marks' s vrijednostima ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] i [4, 6 , 8, 6, 9,10] redom. Pretpostavimo da su to ime stupci koji pohranjuju imena učenika, a stupac 'ocjene' pohranjuje rezultat nekog nedavnog testa. Sada ćemo napisati izjavu o slučaju koja dodaje novi stupac pod nazivom 'remarks' čije se vrijednosti temelje na vrijednostima koje smo mi naveli za svaki uvjet.

Metoda “numpy.where()” daje indekse elemenata iz ulaznog polja, stupca ili popisa koji zadovoljavaju navedeni uvjet. U gornjem slučaju prekidača, funkcija np.where() provjerava svaki element u stupcima 'oznaka'. Ako je vrijednost jednaka ili manja od 5, vratit će 'neuspjeh' kao izlaz. Ako je vrijednost manja ili jednaka 7, vratit će zadovoljavajuće, a ako je vrijednost manja ili jednaka 9, vratit će 'odlično'. Ako ih nema, rezultat će biti odličan.

Kao što se može primijetiti, novi stupac 'remarks' kreiran je u našem okviru podataka 'df', pohranjujući vrijednosti koje je vratila gornja izjava slučaja.

Primjer # 2:

Pokušajmo ponovno gornju izjavu slučaja s drugim okvirom podataka. Pretpostavimo da moramo ocijeniti igrače na temelju njihovih ukupnih golova na prethodnom nogometnom turniru. Dakle, napravimo podatkovni okvir za pohranu zapisa nogometaša.

Proslijedili smo rječnik s ključevima 'name' i 'goals' unutar funkcije pd.DataFrame() kako bismo stvorili okvir podataka. Za ispis okvira podataka koristit ćemo funkciju ispisa.

Kao što se može vidjeti u gornjem okviru podataka, imamo dva stupca: 'ime' i 'ciljevi'. U nazivu stupca imamo imena igrača ['John', 'Marty', 'Clay', 'Nick', 'Mike', 'Alex', 'Tom', 'Rocky']. U ‘stupcu’ golovi imamo ukupan broj golova koje je svaki igrač postigao na prethodnom turniru. Sada ćemo upotrijebiti našu izjavu o slučaju kako bismo ocijenili te igrače na temelju golova koje su postigli.

Gornji slučaj kreiran je pomoću funkcije where(). Unutar slučaja, funkcija iskaza provjerava svaki element u stupcima 'oznaka' prema uvjetima. Ako je vrijednost u stupcu 'ciljevi' jednaka ili manja od 5, vratit će 'C'. Ako je vrijednost u stupcu 'ciljevi' jednaka ili manja od 9, vratit će 'B'. Vratit će 'A' ako je vrijednost u stupcu 'ciljevi' jednaka ili veća od 10. Vrijednosti koje vraća izjava bit će pohranjene u novom stupcu 'ocjena'. Ispišite 'df' da vidimo rezultate.

Novi stupac “ocjena” uspješno je kreiran pomoću gornje skripte.

Primjer # 3: Pandas if-else izjava korištenjem apply() funkcije

Metoda apply() koristi os retka ili stupca podatkovnog okvira za implementaciju funkcije. Možemo stvoriti vlastitu definiranu funkciju i koristiti je u našem okviru podataka u pandama. Sadržat će if-else uvjete. Kreirajmo prvo naš podatkovni okvir, a zatim ćemo stvoriti funkciju u kojoj ćemo koristiti if-else naredbu za generiranje rezultata. Da bismo kreirali naš podatkovni okvir, prvo ćemo uvesti modul pandi, a zatim ćemo proslijediti rječnik unutar metode pd.DataFrame().

Kao što se može vidjeti, naš se okvir podataka sastoji od dva stupca 'A' koji pohranjuju numeričke vrijednosti [23, 35, 64, 74, 85] i 'B' s vrijednostima [45, 34, 61, 89, 27]. Sada ćemo stvoriti funkciju koja će odrediti koja je vrijednost veća u oba stupca u svakom retku našeg podatkovnog okvira.

Možete koristiti Python lambda funkciju “pandas. DataFrame.apply()” za pokretanje izraza. U Pythonu, lambda funkcija je kompaktna anonimna funkcija koja prihvaća bilo koji broj argumenata i izvršava izraz. U gornjoj skripti stvorili smo izjavu o uvjetu koja će usporediti vrijednost oba stupca i pohraniti rezultat u novi stupac 'usporedbe'. Ako je vrijednost stupca 'A' manja od vrijednosti stupca 'B', vratit će se 'B je veći'. Ako uvjet nije zadovoljen, vratit će se 'A je veće'.

Primjer # 4:

Pokušajmo s drugim primjerom koristeći naredbu if-else unutar funkcije apply() s drugim okvirom podataka.

Pretpostavimo da naš okvir podataka pohranjuje evidenciju zaposlenika neke tvrtke. Stupac 'emp' pohranjuje imena zaposlenika ['Franky', 'Harry', 'Luke', 'Peter', 'Andrew'], dok stupac 'salary' pohranjuje plaće svakog zaposlenika [1350, 1000, 900 , 1200, 980] u podatkovnom okviru 'df'. Sada ćemo kreirati našu if-else izjavu pomoću metode apply().

Gore navedeni uvjet provjerit će svaku vrijednost u stupcu 'plaća' i dodati 200 plaćama zaposlenika gdje je vrijednost plaće manja ili jednaka 1000. Pohranili smo vrijednosti vraćene iz funkcije apply() u novom stupcu ' prirast'. Pogledajmo rezultate gornje skripte.

Kao što vidite, funkcija je uspješno dodala 200 vrijednostima koje su bile manje ili jednake 100. Vrijednosti koje su bile veće od 1000 ostale su nepromijenjene.

Zaključak:

U ovom smo vodiču vidjeli da kada je uvjet zadovoljen, izjava ove vrste, koja se naziva case izjava, vraća vrijednost. Vidjeli smo kako možete stvoriti iskaz slučaja za izvođenje potrebne operacije ili zadatka. U ovom vodiču koristili smo funkciju np.where() i aplikaciju apply() za izradu naredbi o slučaju. Implementirali smo nekoliko primjera da bismo vas naučili kako koristiti pandas case izjave pomoću funkcije where() i kako koristiti apply() funkciju za stvaranje case izjava.