Pandas filter etter kolonneverdi

Pandas filter etter kolonneverdi
En av de mest populære teknikkene for å rengjøre dataene er å filtrere dataene fra en DataFrame. I henhold til etiketten og plasseringen av kolonnene og radene, tilbyr Pandas en rekke teknikker eller metoder for datavalg. I tillegg lar Pandas deg filtrere radene ved å bruke den boolske indekseringen og trekke ut et dataundersett avhengig av kolonnetypene. De mest populære metodene for å trekke ut dataundersettene fra en Pandas DataFrame er dekket i denne artikkelen - velger en kolonne etter etikett, og velger flere kolonner etter etikett, etc.

Hvordan endre pandas -kolonnen til streng

Det er flere metoder og teknikker som vi kan bruke for å filtrere dataene fra Pandas DataFrame basert på verdiene i kolonner. Vi vil demonstrere noen få metoder for å filtrere dataene fra en datafram i følgende eksempler:

Først vil vi se hvordan du filtrerer Pandas DataFrame -radene, avhengig av verdiene til kolonner ved å bruke spesifikke betingede og relasjonelle operatører.

Eksempel 1: Filtrer DataFrame -radene ved å bruke []

For å demonstrere dette eksemplet, trenger vi først en dataaframe. Dataframe er opprettet ved hjelp av pandaene.DataFrame () -funksjonen, så vi importerer Pandas -biblioteket først for å opprette DataFrame.


Vi opprettet vår Dataframe ved hjelp av en Python -ordbok og passerte den deretter inne i PD.DataFrame () -funksjon. Vi spesifiserte navnene på våre DataFrames kolonner som "student", "alder", "emne" og "gebyr". Vi kan bruke PRINT () -funksjonen for å illustrere vår "DF" DataFrame.


I forrige DataFrame er det 4 kolonner. “Student” lagrer navnene (“Anna”, “Dany”, “John”, “Rick”, “Jim”, “Kenny”). “Alder” lagrer alderen til enkeltpersoner (25, 23, 22, 18, 19, 20). “Emne” består av fagnavn (“Regnskap”, “Business”, “Science”, “Math”, “Architecture”, “AI”). Og "gebyr" består av gebyret for hvert fag (900, 690, 799, 960, 970, 1080). La oss anta at vi må filtrere ut radene der verdien er større enn 900 i "avgift" -kolonnen.


For å få tilgang til verdiene i kolonnen "avgift", legger vi navnet på kolonnen, i.e. “Feis”, inne i parentesene. Etter tilgang til verdiene, brukte vi en DF ['Fee']> 900 tilstand. For å lagre verdiene som oppfyller tilstanden, opprettet vi "output" -variabelen.


Vi har tre rader som tilfredsstiller forrige tilstand. Vi kan bruke de forskjellige kolonnene inne i parentesene [].

Eksempel 2: Filtrer DataFrame -radene ved hjelp av LOC [] -metoden

I dette eksemplet brukes LOC [] -metoden for å få tilgang til verdiene fra DataFrame -kolonnene. Deretter bruker vi de relasjonelle eller betingede operatørene for å filtrere DataFrames rader. LOC () -funksjonen gjør det enkelt å raskt skaffe verdiene fra en DataFrame. Ved å sende et kolonnenavn, radnavn eller indeksverdi til LOC () -funksjonen, kan vi hente dataverdiene som er lagret inne i den spesifikke raden eller kolonnen.


For å hente verdiene fra alderssøylene, passerte vi DF ['Age'] inne i DF.loc [] funksjon. Vi brukte også en tilstand i funksjonen for å hente bare de radene der verdien av alderen er større enn 19. For å sjekke om den hentet de riktige radene eller ikke, la oss illustrere vår dataframme ved hjelp av print () -funksjonen.


I de tidligere gitte eksemplene har vi sett hvordan vi bruker de relasjonelle eller betingede operatørene for å filtrere de spesifikke radene basert på kolonneverdier. Nå vil vi se hvordan du filtrerer dataene ved hjelp av ISIN () -funksjonen.

Eksempel 3: Filtrer DataFrame -radene med verdier inne i listen ved hjelp av ISIN () -metoden

DataFrames elementer blir sjekket for å se om de er inneholdt i verdier ved bruk av ISIN () -funksjonen. Bare hvis alle etikettene stemmer overens med et gitt sted, vil resultatet være sant. La oss lage vår dataaframe etter import av Pandas -modulen. Igjen, PD.DataFrame () brukes til å lage vår nye DataFrame.


Vi opprettet en DataFrame med tre kolonner - “Navn”, “Betegnelse” og “Lønn” som lagrer dataene (“Richard”, “Will”, “Steve”, “Larry”, “Lana”, “Tony”), (“Regnskapsfører”, “Regnskapsfører”, “Manager”, “Clerk”, “Clerk”, “Manager”) og (henholdsvis 1200, 1250, 2100, 1000, 990, 2200). Nå oppretter vi et listeobjekt som sendes inne i ISIN () -funksjonen som en inngang for å matche verdiene på listen fra de spesifiserte kolonneverdiene til vår DataFrame.


Vi opprettet først en liste der vi satte verdiene "regnskapsfører" og "manager" og tildelte denne listen til en "Desig" -variabel. Verdien av kolonnen "Betegnelse" får tilgang til ved hjelp av kolonnens navn, i.e. “Betegnelse”, inne []. Vi brukte isin () -funksjonen på de vurderte verdiene til kolonnen for å matche verdiene i listen med verdiene i "betegnelsen" -kolonnen i vår dataframe.


Vi brukte verdiene "regnskapsfører" og "manager" inne i listen. Så funksjonen returnerte radene der betegnelseskolonnen har leder og regnskapsførerverdier.

Eksempel 4: Filtrer dataene basert på verdier i DataFrame -kolonner ved hjelp av LOC [] og ISIN () -metoden

Nå bruker vi LOC [] -metoden for å hente eller få tilgang til de spesifikke kolonnene i DataFrame. Etter tilgang til dataene bruker vi ISIN () -funksjonen for å filtrere dataene i DataFrame.


I forrige skript har vi en "SAL" -liste med [1200, 2100, 2200] verdier. Deretter sendes "SAL" -listen innen ISIN () -funksjonen som et argument for å matche verdiene på listen med "lønn" -kolonnen ". Etter å ha samsvarende verdiene, lagres radene som er oppnådd fra funksjonen i en ny "DF_Filter" -variabel. Nå ser vi resultatet ved hjelp av print () -funksjonen.


Det kan sees at de nødvendige radene med verdiene 1200, 2100 og 2200 hentes ut fra “DF” DataFrame.

Nå, i neste eksempel, vil vi filtrere dataene ved å bruke flere forhold.

Eksempel 5: Filtrer DataFrame -radene ved å bruke flere forhold på DataFrame -kolonner

La oss opprette en DataFrame først der vi bruker flere forhold for å filtrere radene til DataFrame.


Det er totalt 4 kolonner i forrige DataFrame - "Student", "Alder", "Kurs" og "Fee". Kolonnen "Student" lagrer navnet på studenter ("Mike", "Rob", "Arya", "Tom", "Jack", "Luca", "Mark", "Max" og "Alex"). Kolonnen "Alder" inneholder alderen til hver student (21, 21, 23, 22, 19, 20, 25, 23, 22). Mens "kurs" og "gebyr" kolonner lagrer navnet på kurs ("regnskap", "forretning", "vitenskap", "matematikk", "arkitektur", "AI", "Regnskap", "Business", "AI ”) Og avgift for hvert kurs for en student (1000, 1190, 1250, 1320, 1245, 1580, 1420, 1600, 1600). La oss bruke betingelsene for å trekke ut de nødvendige radene.


Vi opprettet en "sub" -liste med "Regnskap" og "AI" -elementer. Listen sendes i ISIN () -funksjonen for å matche elementene på listen med verdiene på "kurs" -kolonnen. Vi brukte en annen betingelse om at verdien i "avgift" -kolonnen må være større enn 1250. Det forrige skriptet henter radene som tilfredsstiller begge forholdene.


Disse radene oppfyller begge forholdene.

Konklusjon

I denne opplæringen diskuterte vi flere metoder og teknikker som kan brukes til å filtrere dataene fra Pandas DataFrame basert på verdier i kolonner. Vi prøvde å gjøre deg i stand til å filtrere dataene basert på kolonneverdier selv. Vi implementerte de forskjellige eksemplene i denne artikkelen for å lære deg hvordan du bruker LOC [] og ISIN () -funksjonene, så vel som relasjonelle eller betingede operatører for å trekke ut dataene fra den gitte DataFrame, avhengig av kolonneverdier.