Pandas filter etter verdi

Pandas filter etter verdi
En tabellstruktur med søyler og rader er en dataafram i pandaer. Data kan rengjøres, filtreres, aggregeres og grupperes ved hjelp av dette biblioteket. Det gjør oss i stand til å dele det originale datasettet i mindre grupper. Ved å dele datasettet i mindre DataFrames, gjør det oss i stand til å hente ut undergrupper fra det gitte datasettet. Dette gjør det enklere å undersøke, visualisere og analysere bestemte dataseksjoner. Det er nødvendig å forstå disse kommandoene for å bruke dem effektivt. Vi lærer forskjellige måter å filtrere en pandas dataaframe i denne python -opplæringen.

Hvordan filtrere DataFrame etter verdier i pandaer?

Heldigvis er det flere teknikker for å filtrere data fra DataFrames og serier i pandaer. Verdiene fra et datafram kan filtreres ved hjelp av en rekke funksjoner som demonstrert i eksemplene nedenfor.

Eksempel # 01: Filtrering av DataFrame -rader ved hjelp av kolonneverdi

I en dataaframe trenger du ofte å finne forekomster av en bestemt verdi. De .LOC -indekseringsfunksjon gjør det enkelt å filtrere rader i henhold til om verdien eksisterer eller ikke. Først vil vi importere Pandas -biblioteket. Deretter vil vi opprette DataFrame ved hjelp av PD.DataFrame () -funksjon.

Vi har laget seks rader og tre kolonner. Kolonnen 'person' består av navnene på noen individer ('Jason', 'Arya', 'Kim', 'Ryan', 'Sana', 'Mark'). Kolonnen "Vekt" er dataverdiene som representerer vektene til individer i kg (80, 56, 60, 72, 63, 90). Kolonnen 'Sex' har strengverdiene som representerer kjønn av individer ('M', 'F', 'F', 'M', 'F', 'M'). La oss trekke ut radene der verdien i "sex" -kolonnen er 'F'. For dette vil LOC [] -funksjonen bli brukt. Rader kan hentes ved hjelp av LOC [] -funksjonen som Pandas tilbyr. Bare indeksetiketter kan sendes som input i DataFrame.loc [] metode. Den returnerer en dataaframe eller rad hvis indeksetiketten eksisterer i datarammen som blir kalt.

Det logiske uttrykket tas som et argument av .loc [] metode. Ved å spesifisere DF ['Sex'] == 'F' inne i LOC [] -funksjonen, har funksjonen returnert tre rader der verdien av kolonnen 'Sex' er 'F'.

Eksempel nr. 02: Filtrering av DataFrame -rader ved hjelp av logiske eller relasjonelle forhold

I noen scenarier kan du foretrekke å finne grupperte data basert på mønstre i stedet for rader med en enkelt verdi. Logiske uttrykk kan brukes til å definere mønstre. La oss lage en dataaframe først.

Dataframe ovenfor består av tre kolonner 'Gymnast' med verdier ('Roxy', 'Alan', 'Eva', 'Marcus', 'Jim', 'Zack', 'Lana', 'Robin'), kolonnehøyde som lagrer den Høyder på gymnastene i føtter (6.2, 6.0, 5.8, 6.2, 6.4, 5.9, 5.7, 6.0), og kolonnen som inneholder kjønnene til gymnaster ('kvinne', 'mann', 'kvinne', 'mann', 'hann', 'mann', 'kvinne', 'kvinne'). Logikken vil bli definert i indekseringsoperatøren ([]) som et argument.

I likhet med det siste eksemplet, filtrerer vi DataFrame -radene for bare å trekke ut de der dataverdiene i kolonnen "høyde" er større enn 6.0.

Som sett har vi tre rader der verdien er større enn 6.0 i kolonnen 'høyde'. Vi kan også definere flere forhold ved bruk og operatør. La oss hente radene der høyden er mindre enn 6.2 og verdien i kolonnen 'kjønn' er 'kvinne'.

Vi har spesifisert to betingelser i indekseringsoperatøren ([]), DF ['Høyde'] < 6.2) and (df['gender'] == 'female'). The function has extracted the rows where the height is less than 6.2 and gender is equal to 'female'.

Eksempel # 03: Filtrering av DataFrame ved hjelp av skiveoperatør

Det er situasjoner når du trenger å filtrere data basert på indeksposisjonen i stedet for verdiene. Du kan raskt spesifisere et indeksområde for DataFrame -rad, kolonne eller begge deler for å trekke ut ved hjelp av .ILOC -metoden. La oss lage en dataafram -ramme med flere kolonner og for å forstå bruken av ILOC [] -funksjonen praktisk talt.

Den nødvendige DataFrame er opprettet ved å bruke en Python -ordbok inne i parentesene til PD.DataFrame () -funksjon. DataFrame -kolonnen 'spiller' består av navnet på spillerne ('Alex', 'Brock', 'Riley', 'Anna', 'Jia', 'Henry', 'Tom', 'Ron'), 'poengsum 'Kolonnen inneholder poengsummen for et nylig spill (9, 9, 6, 7, 8, 10, 4, 5), rekkene' rangerer kolonnen representerer spillere (3, 2, 6, 5, 4, 1, 8, 7), og 'karakteren' kolonnen som lagrer karakterene ('A', 'A', 'C', 'B', 'B', 'A', 'D', 'C'). La oss bruke ILOC [] -funksjonen for å filtrere dataene.

Det første argumentet returnerer fem rader med data som vi har spesifisert 0: 5. Det betyr at radene som starter ved indeks 0 og slutter før indeks 5. To kolonner med data returneres da vi har spesifisert 1: 3 i det andre argumentet, noe som indikerer kolonnene som starter ved indeks 1 og slutter før indeks 3. Hvis du vil hente alle rader eller alle kolonnene, kan du forlate det argumentasjonsstedet (første eller andre) med en tykktarm ":".

Eksempel # 04: Filtrering av DataFrame -rader ved hjelp av spørring () -funksjon

Du kan spesifisere en tilstand eller flere i pandaene.spørring () Metode som en streng. Det eliminerer også kravet om å hente dataafram -radene ved å bruke indekseringsoperatørene ([],.Loc,.iloc osv.). Vi må lage en dataaframe først hvor vi skal filtrere radene.

Det er to kolonner i Dataframe: 'Studenter' med dataverdier ('Ryan', 'Wanda', 'Bob', 'Drew', 'Natalia', 'Maya', 'Adam', 'Nick') og 'Marks 'med verdier (48, 35, 46, 20, 28, 30, 43, 36). For spørringen () -funksjonen for å hente data fra DataFrame, kan vi spesifisere en enkelt tilstand eller flere forhold som en streng.

Vi har spesifisert en betingelse for å hente radene der verdien i Marks -kolonnen er mindre enn 48 og større enn 30. Fire rader hentes fra DataFrame som tilfredsstiller tilstanden som er spesifisert i spørringen () -funksjonen.

Eksempel # 05: Filtrering av DataFrame -rader fra nullverdiene

I noen tilfeller kan nullverdiene være til stede i et datasett. Bruke pandaene.NotNull () -funksjon, det er enkelt å eliminere rader med manglende verdier fra DataFrame. La oss opprette en DataFrame som har nullverdier eller manglende verdier i minst en av kolonnene.

Som det kan sees i kolonnen 'col2' (11, ingen, 36, ingen, ingen, 21, 46, 60), er det noen manglende verdier. Med bruk av indekseringsoperatøren og Notnull () -funksjonen, kan disse nullverdiene filtreres ut fra DataFrame.

Ovennevnte funksjon har eliminert alle radene som har nullverdier.

Eksempel # 06: Filtrering av DataFrame -rader ved hjelp av strengmetoder

Denne opplæringseksemplene har hovedsakelig konsentrert seg om å filtrere numeriske tall. Strengdata kan imidlertid også brukes. For å filtrere data enda mer presist, kan noen strengfunksjoner også brukes. La oss bruke DataFrame vi har laget i eksempel nr. 5.

Du kan filtrere DataFrame -rader ved å bruke STR -egenskapen og inneholder () -funksjon basert på en bestemt del av en strengverdi eller strengverdien som helhet. La oss hente radene som har den spesifikke strengen "tiger" i verdiene til 'Col3' kolonnene.

Vi kan også hente rader med DataFrame ved startbrevet med strengverdier ved å bruke STR -egenskapen og startswith () -funksjonen. Startbrevet til strengen vil bli spesifisert i StartSwith () -funksjonen. La oss hente radene der strengverdiene starter med bokstaven 'A' i kolonnen 'Col1'.

Konklusjon

I denne opplæringen har vi diskutert hvordan du filtrerer DataFrame med verdiene i pandaer. Vi har sett at en dataaframes verdier kan filtreres ved hjelp av flere forskjellige funksjoner. Vi implementerte flere eksempler i denne opplæringen for å lære deg hvordan du filtrerer DataFrame -rader ved hjelp av DataFrame.Loc [] metode, logiske eller relasjonelle forhold, skiveoperatør, spørring () -funksjon, NotNull () -funksjon og strengmetoder.