Pandas Case Hvornår

Pandas Case Hvornar



Når en betingelse er opfyldt eller opfyldt, giver en case-sætning på pandasproget et output eller returnerer en værdi. En case-sætning gør det muligt at sammenligne værdien af ​​en variabel med en række potentielle værdier. Når værdisættet henvises til eller videregives i case-sætningen, kontrolleres hver værdi i sættet af tilfældene eller betingelserne i sætningen. Vi kan også bruge if-else-sætningen til at udføre den samme handling. Hvis en bestemt betingelse er sand, forårsager if-else-sætningen, at et stykke script bliver eksekveret. If-else-sætningen siger, at du skal udføre dette, hvis betingelsen er sand, og at gøre det, hvis den ikke er det. I denne vejledning vil vi udføre forskellige operationer ved at bruge case-sætninger og if-else-sætninger.

Hvordan bruger man Pandas-sagserklæringen?

Sagsopgørelser kan laves på flere måder. Funktionen NumPy where(), som anvender følgende grundlæggende syntaks, er den enkleste måde at konstruere en case-sætning i en Pandas DataFrame:

df [ 'kolonnenavn' ] = np.hvor ( tilstand 1 , 'værdi1',
np.hvor ( tilstand to , 'værdi2',
np.hvor ( tilstand 3 , 'værdi3', 'værdi4' ) ) )







Ovenstående erklæring vil kontrollere hver betingelse for værdien, og hvis betingelsen er opfyldt, vil den generere output eller returnere værdien mod betingelsen.



Eksempel # 1: Pandas Case Statement Bruger where() funktion

Lad os først oprette en dataramme, så vi kan bruge vores case-erklæring. For at oprette datarammen importerer vi først numpy- og pandas-modulerne, så vi kan bruge deres funktionaliteter. pd.Dataframe() vil blive brugt til at skabe vores dataramme.







Vi har lavet 'df'-datarammen. En Python-ordbog sendes inde i pd.DataFrame() fungerer som et argument med nøgler og værdier. Vi vil bruge print()-funktionen til at se vores dataramme.



I 'df'-datarammen har vi to kolonner 'navn' og 'mærker' med værdierne ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] og [4, 6 8, 6, 9, 10]. Antag, at navnet er kolonnerne, der gemmer navnene på eleverne, og kolonnens 'mærker' gemmer scoren fra en nylig test. Nu vil vi skrive en sagserklæring, der tilføjer en ny kolonne med navnet 'bemærkninger', hvis værdier er baseret på de værdier, der er angivet af os, for hver betingelse.

Metoden 'numpy.where()' giver elementindekserne fra en inputarray, kolonne eller liste, der opfylder den angivne betingelse. I ovenstående switch case kontrollerer funktionen np.where() hvert element i 'marks' kolonnerne. Hvis værdien er lig med eller mindre end 5, vil den returnere 'fail' som et output. Hvis værdien er mindre end eller lig med 7, vil den vende tilbage tilfredsstillende, og hvis værdien er mindre end eller lig med 9, vil den returnere ‘great.’ Hvis der ikke er nogen, bliver resultatet fremragende.

Som det kan bemærkes, er den nye kolonne 'bemærkninger' oprettet i vores 'df'-dataramme, og gemmer værdierne returneret af case-sætningen ovenfor.

Eksempel #2:

Lad os prøve ovenstående case-sætning igen med en anden dataramme. Antag, at vi skal bedømme spillere ud fra deres samlede mål i den foregående fodboldturnering. Så lad os lave en dataramme til at gemme fodboldspillerregistreringer.

Vi har bestået en ordbog med nøglerne 'navn' og 'mål' inde i funktionen pd.DataFrame() for at skabe vores dataramme. For at printe vores dataramme vil vi bruge printfunktionen.

Som det kan ses i ovenstående dataramme, har vi to kolonner: 'navn' og 'mål'. I kolonnenavnet har vi navnene på spillere ['John', 'Marty', 'Clay', 'Nick', 'Mike', 'Alex', 'Tom', 'Rocky']. I 'kolonne'-målene har vi det samlede antal mål scoret af hver spiller i den foregående turnering. Vi vil nu bruge vores case-udtalelse til at bedømme disse spillere ud fra de mål, de har scoret.

Ovenstående case er oprettet ved hjælp af where()-funktionen. Inde i sagen tjekker statement-funktionen hvert element i 'mærker'-kolonnerne mod betingelserne. Hvis værdien i kolonnen 'mål' er lig med eller mindre end 5, vil den returnere 'C'. Hvis værdien i kolonnen 'mål' er lig med eller mindre end 9, vil den returnere 'B'. Det vil returnere et 'A', hvis værdien i kolonnen 'mål' er lig med eller større end 10. De værdier, der returneres af udsagnet, vil blive gemt i den nye kolonne 'rating'. Lad os udskrive 'df'en' for at se resultaterne.

Den nye kolonne 'rating' er oprettet ved hjælp af ovenstående script.

Eksempel # 3: Pandas if-else-erklæring ved at bruge funktionen apply().

Datarammens række- eller kolonneakse bruges af application()-metoden til at implementere en funktion. Vi kan oprette vores egen definerede funktion og bruge den i vores dataramme i pandaer. Det vil omfatte if-else-betingelser. Lad os først oprette vores dataramme, så laver vi en funktion, hvor vi vil bruge en if-else-sætning til at generere resultatet. For at skabe vores dataramme importerer vi pandaernes modul først, derefter sender vi en ordbog inde i pd.DataFrame() metoden.

Som det kan ses, består vores dataramme af to kolonner 'A', der gemmer numeriske værdier [23, 35, 64, 74, 85] og 'B' med værdier [45, 34, 61, 89, 27]. Nu vil vi oprette en funktion, der bestemmer, hvilken værdi der er størst blandt begge kolonner i hver række af vores dataramme.

Du kan bruge Python lambda-funktionen 'pandas. DataFrame.apply()' for at køre et udtryk. I Python er en lambda-funktion en kompakt anonym funktion, der accepterer et vilkårligt antal argumenter og udfører et udtryk. I scriptet ovenfor har vi lavet en betingelsessætning, der sammenligner værdien af ​​begge kolonner og gemmer resultatet i den nye 'sammenlignings' kolonne. Hvis værdien af ​​kolonne 'A' er mindre end værdien af ​​kolonne 'B', vil den returnere 'B er større'. Hvis betingelsen ikke er opfyldt, vil den returnere 'A er større'.

Eksempel #4:

Lad os prøve et andet eksempel ved at bruge if-else-sætningen inde i funktionen apply() med en anden dataramme.

Antag, at vores dataramme gemmer optegnelser over ansatte i en eller anden virksomhed. Kolonnen 'emp' gemmer navnene på medarbejdere [“Franky”, “Harry”, “Luke”, “Peter”, “Andrew”], mens kolonnen “løn” gemmer lønnen for hver medarbejder [1350, 1000, 900 , 1200, 980] i 'df'-datarammen. Nu vil vi oprette vores if-else-sætning ved hjælp af application()-metoden.

Ovenstående betingelse vil kontrollere for hver værdi i kolonne 'løn' og tilføje 200 til lønningerne for medarbejdere, hvor lønværdien er mindre end eller lig med 1000. Vi har gemt værdierne returneret fra funktionen apply() i den nye kolonne ' stigning'. Lad os se resultaterne fra ovenstående script.

Som du kan se, har funktionen med succes tilføjet 200 til værdierne, der var mindre end eller lig med 100. Værdierne, der var større end 1000, forblev uændrede.

Konklusion:

I denne øvelse har vi set, at når betingelsen er opfyldt, returnerer en erklæring af denne type, kaldet en case-sætning, en værdi. Vi har set, hvordan du kan oprette en sagsopgørelse for at udføre en påkrævet operation eller opgave. I denne tutorial har vi brugt funktionen np.where() og funktionen apply() til at oprette case-sætninger. Vi implementerede et par eksempler for at lære dig, hvordan du bruger pandas-sagsudsagn ved at bruge where()-funktionen og hvordan du bruger funktionen apply() til at oprette case-udsagn.