Pandas filter etter indeks

Pandas filter etter indeks

Ved hjelp av "filter ()" kan vi filtrere en dataaframe basert på indekser. Med denne teknikken vil DataFrames rader eller kolonner være en delmengde av den originale DataFrame i henhold til de spesifiserte etikettene i den gitte indeksen.

Det er forskjellige metoder for å filtrere radene til DataFrame basert på deres indeks. Men i denne opplæringen er hovedfokuset vårt Filter () -funksjonen. La oss sjekke syntaksen først slik at vi kan bruke den til å filtrere dataene. Metoden returnerer et objekt av samme type som den som brukes som input.

Syntaks:

DataFrame_Object.filter (elementer = ingen, som = ingen, regex = ingen, akse = ingen)

Parametere:

    1. Elementer: Det krever en liste over aksetikettene du vil filtrere.
    2. som: Oppbevar informasjonsaksen der "arg i col == true". Axis String -etiketten som vi vil filtrere er tatt.
    3. regex: Hold infoaksen der re.søk (regex, col) == true.
    4. akser: Aksen for å filtrere 'indeksen' eller 0, 'kolonner' eller 1, ingen. Som standard er dette informasjonsaksen. For serier er det “indeks”. For DataFrame er det “kolonner”.

Siden vi har sett syntaksen, demonstrerer vi filter () -funksjonen i følgende eksempler:

Eksempel 1: Filter etter numerisk indeks

Lag dateframe med 2 kolonner som inneholder 5 poster og returner bare de spesielle radene basert på indeks.

Importer pandaer
Hobbyer = Pandas.DataFrame ('Stud_name': ['Stud 1', 'Stud 2', 'Stud 3', 'Stud 4', 'Stud 5'],
'Hobbyer': ['Music', 'Singing', 'Dance', 'Play', 'Drink'])
trykk (hobbyer)
skrive ut()
# Få bare første rad
trykk (hobbyer.filter ([0], akse = 0))
skrive ut()
# Få bare femte rad
trykk (hobbyer.filter ([4], akse = 0))


Produksjon:

Stud_name hobbyer
0 Stud 1 Musikk
1 stud 2 sang
2 stud 3 dans
3 Stud 4 Play
4 Stud 5 Drink
Stud_name hobbyer
0 Stud 1 Musikk
Stud_name hobbyer
4 Stud 5 Drink


Forklaring:

    1. I den første utgangen returnerte vi den første raden ved hjelp av indeks-0.
    2. I den andre utgangen returnerte vi den femte raden ved hjelp av indeks-4.

Eksempel 2: Filter med flere numeriske indekser

Lag dateframe med 2 kolonner som inneholder 5 poster og returner bare de spesielle radene basert på indeksen om gangen.

Importer pandaer
Hobbyer = Pandas.DataFrame ('Stud_name': ['Stud 1', 'Stud 2', 'Stud 3', 'Stud 4', 'Stud 5'],
'Hobbyer': ['Music', 'Singing', 'Dance', 'Play', 'Drink'])
# Få første to rader
trykk (hobbyer.filter (elementer = [0,1], akse = 0))
skrive ut()
# Få bare andre, tredje og femte rader
trykk (hobbyer.filter (elementer = [1,2,4], akse = 0))


Produksjon:

Stud_name hobbyer
0 Stud 1 Musikk
1 stud 2 sang
Stud_name hobbyer
1 stud 2 sang
2 stud 3 dans
4 Stud 5 Drink


Forklaring:

    1. I den første utgangen returnerte vi de første og andre radene om gangen ved å bruke Index-0 og 1.
    2. I den andre utgangen returnerte vi den andre, tredje og femte raden ved bruk av indeks-1, 2 og 4.

Eksempel 3: Filter etter ikke-numerisk indeks

Opprett datoframe med 3 kolonner som inneholder 4 poster og returner bare de spesielle radene separat basert på indeks. Her er indeksen av “.streng ”Type.

Importer pandaer
Journey = Pandas.DataFrame ('fra': ['City 1', 'City 1', 'City 3', 'City 4'],
'til': ['ap', 'USA', 'City 2', 'City 1'],
'Avstand': [200.500.466.100],
indeks = ['Passenger 1', 'Passenger 2', 'Passenger 3', 'Passenger 4'])
trykk (reise)
skrive ut()
# Få raden der indeks-'Passenger 3 '.
trykk (reise.Filter (elementer = ['Passenger 3'], Axis = 0))
skrive ut()
# Få raden der indeks-'Passenger 1 '.
trykk (reise.Filter (elementer = ['Passenger 1'], Axis = 0))


Produksjon:

fra til avstand
Passasjer 1 by 1 AP 200
Passasjer 2 City 1 USA 500
Passasjer 3 by 3 by 2 466
Passasjer 4 by 4 by 1 100
fra til avstand
Passasjer 3 by 3 by 2 466
fra til avstand
Passasjer 1 by 1 AP 200


Forklaring:

    1. I den første utgangen returnerte vi den tredje raden ved hjelp av indeks- “Passenger 3”.
    2. I den andre utgangen returnerte vi den første raden ved hjelp av indeks- “Passenger 1”.

Eksempel 4: Filter av flere ikke-numeriske indekser

Returner de tre siste radene om gangen basert på indeksen.

Importer pandaer
Journey = Pandas.DataFrame ('fra': ['City 1', 'City 1', 'City 3', 'City 4'],
'til': ['ap', 'USA', 'City 2', 'City 1'],
'Avstand': [200.500.466.100],
indeks = ['Passenger 1', 'Passenger 2', 'Passenger 3', 'Passenger 4'])
# Få raden der indeks- 'Passenger 2', 'Passenger 3', 'Passenger 4'
trykk (reise.Filter (elementer = ['Passenger 2', 'Passenger 3', 'Passenger 4'], Axis = 0))


Produksjon:

fra til avstand
Passasjer 2 City 1 USA 500
Passasjer 3 by 3 by 2 466
Passasjer 4 by 4 by 1 100

Eksempel 5: Filter ved hjelp av lignende parameter

La oss bruke parameteren "som" for å returnere radene basert på indeksen som - "passasjer" og "r 1", separat.

Importer pandaer
Journey = Pandas.DataFrame ('fra': ['City 1', 'City 1', 'City 3', 'City 4'],
'til': ['ap', 'USA', 'City 2', 'City 1'],
'Avstand': [200.500.466.100],
indeks = ['Passenger 1', 'Passenger 2', 'Passenger 3', 'Passenger 4'])
# Få raden der indeksen er som 'passasjer'.
trykk (reise.filter (som = 'passasjer', akse = 0))
skrive ut()
# Få raden der indeksen er som 'R 1'.
trykk (reise.filter (like = 'r 1', akse = 0))


Produksjon:

fra til avstand
Passasjer 1 by 1 AP 200
Passasjer 2 City 1 USA 500
Passasjer 3 by 3 by 2 466
Passasjer 4 by 4 by 1 100
fra til avstand
Passasjer 1 by 1 AP 200


Forklaring:

    1. Alle indekser inneholder "passasjer". Så alle radene ble returnert i første utgang.
    2. Bare en indeks er som "R 1". Så raden med indeks - “Passenger 1” returneres i den andre utgangen.

Eksempel 6:

La oss vurdere DataFrame med indeksene - ['Sravan', 'Ravan', 'Pavan', 'Ravi'] og deretter returnere radene med indekser som "N" og "M" hver for seg.

Importer pandaer
Journey = Pandas.DataFrame ('fra': ['City 1', 'City 1', 'City 3', 'City 4'],
'til': ['ap', 'USA', 'City 2', 'City 1'],
'Avstand': [200.500.466.100],
indeks = ['Sravan', 'Ravan', 'Pavan', 'Ravi'])
# Få raden der indeksen er som 'n'.
trykk (reise.filter (like = 'n', akse = 0))
skrive ut()
# Få raden der indeksen er som 'M'.
trykk (reise.filter (som = 'm', akse = 0))


Produksjon:

fra til avstand
Sravan City 1 AP 200
Ravan City 1 USA 500
Pavan City 3 City 2 466
Tom dataaframe
Kolonner: [fra, til, avstand]
Indeks: []


Forklaring:

    1. Det er tre rader der indeksen inkluderer "n".
    2. Det er ingen rad der indeksene inkluderer "M". Så den tomme DataFrame blir returnert.

Konklusjon

Vi lærte deg hvordan du kan hente DataFrame -radene basert på indeksene deres i pandaer. Vi så syntaksen til filter () -funksjonen først for å forstå dens parametere og arbeid med filterfunksjonen. Vi implementerte de forskjellige eksemplene for å lære deg hvordan du filtrerer en dataframe ved å bruke indeksene for numeriske verdier og ikke-numeriske verdier. Vi implementerte også noen eksempler for å forklare hvordan du kan filtrere en dataaframe for indeksene som inneholder et bestemt tegn eller streng ved å sende lignende parameter til filter () -funksjonen.