Python Academy · leksjon

Indeksering, filtrering og boolske masker

Velg rader og kolonner med loc, iloc og boolske betingelser.

Leksjon 2 av 413 trinn

Indeksering, filtrering og boolske masker er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

loc vs iloc

loc velger etter etikett; iloc velger etter heltallsposisjon. Bland dem aldri sammen.

import pandas as pd

df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]}, index=["x","y","z"])
print(df.loc["y"])       # row with label y
print(df.iloc[1])        # row at position 1 (same row)
print(df.loc["x":"y"])   # rows x to y inclusive

Filtrering med boolsk maske

Opprett en boolsk Series og bruk den til å velge rader. Dette tilsvarer boolsk indeksering i NumPy i pandas.

import pandas as pd

df = pd.DataFrame({"name":["Alice","Bob","Carol"],"age":[30,17,25]})
adults = df[df["age"] >= 18]
print(adults)
# Alice 30
# Carol 25

Flere betingelser

Kombiner boolske betingelser med & (og) og | (eller). Sett hver betingelse i parentes.

import pandas as pd

df = pd.DataFrame({"city":["NY","LA","NY","LA"],"score":[80,90,70,85]})
result = df[(df["city"]=="NY") & (df["score"]>75)]
print(result)

query()-metoden

df.query("expression") godtar et strenguttrykk som ofte er mer lesbart enn boolske masker.

import pandas as pd

df = pd.DataFrame({"age":[30,17,25],"score":[90,80,70]})
result = df.query("age >= 18 and score > 75")
print(result)

Filtrering med isin()

isin(list) filtrerer rader der en kolonneverdi finnes i en angitt liste.

import pandas as pd

df = pd.DataFrame({"city":["NY","LA","Chicago","NY"],"val":[1,2,3,4]})
print(df[df["city"].isin(["NY","LA"])])
# rows with NY or LA

between() for intervallfiltrering

series.between(left, right) returnerer True for verdier i [left, right] – inklusivt som standard.

import pandas as pd

df = pd.DataFrame({"score":[55,70,85,95,40]})
print(df[df["score"].between(60, 90)])
# 70 and 85

loc for tilordning

Bruk alltid loc/iloc for tilordning på stedet for å unngå SettingWithCopyWarning.

import pandas as pd

df = pd.DataFrame({"val":[1,2,3,4]})
df.loc[df["val"] > 2, "val"] = 99
print(df)
# 0:1  1:2  2:99  3:99

at og iat for enkeltverdier

at[label, col] og iat[i, j] gir rask tilgang til skalare verdier – raskere enn loc/iloc for enkeltverdier.

import pandas as pd

df = pd.DataFrame({"a":[10,20],"b":[30,40]})
print(df.at[0,"a"])    # 10  (by label)
print(df.iat[1,1])     # 40  (by position)

Velge etter datatype

select_dtypes(include/exclude) velger kolonner etter datatype.

import pandas as pd

df = pd.DataFrame({"x":[1,2],"name":["a","b"],"score":[1.5,2.5]})
nums = df.select_dtypes(include=["number"])
print(nums.columns.tolist())   # ['x', 'score']

Fjerne duplikater

drop_duplicates() fjerner dupliserte rader. Angi subset for å sammenligne bare bestemte kolonner.

import pandas as pd

df = pd.DataFrame({"name":["Alice","Bob","Alice"],"age":[30,25,30]})
print(df.drop_duplicates())
# keeps first Alice, removes second

nlargest og nsmallest

Velg effektivt de øverste eller nederste N radene etter en kolonneverdi.

import pandas as pd

df = pd.DataFrame({"product":["A","B","C","D"],"sales":[500,300,800,200]})
print(df.nlargest(2,"sales"))
# C 800
# A 500

Hurtigsjekk

Hva er forskjellen mellom loc og iloc?

Oppsummering

Bruk loc[label] for etikettbasert utvalg og iloc[i] for posisjonsbasert utvalg. Filtrer rader med boolske masker kombinert med &/|. Bruk query() for lettleste filtre, isin() for medlemskapstester, og tilordne alltid via loc for å unngå SettingWithCopyWarning.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Indeksering, filtrering og boolske masker» gratis?

Ja – hele teksten i «Indeksering, filtrering og boolske masker» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Indeksering, filtrering og boolske masker»?

Velg rader og kolonner med loc, iloc og boolske betingelser. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Indeksering, filtrering og boolske masker»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende om Series og DataFrame
  2. Indeksering, filtrering og boolske masker
  3. GroupBy, aggregering og pivottabeller
  4. Slå sammen, koble og rense data
← Tilbake til Python Academy