Python Academy · Les

Indexeren, filteren en booleaanse maskers

Selecteer rijen en kolommen met loc, iloc en booleaanse voorwaarden.

Les 2 van 413 stappen

Indexeren, filteren en booleaanse maskers is een gratis Python Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

loc versus iloc

loc selecteert op label; iloc selecteert op gehele positie. Haal ze nooit door elkaar.

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

Filteren met booleaanse maskers

Maak een booleaanse Series en gebruik die om rijen te selecteren. Dit is het pandas-equivalent van booleaanse indexering in NumPy.

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

Meerdere voorwaarden

Combineer booleaanse voorwaarden met & (en) en | (of). Zet elke voorwaarde tussen haakjes.

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)

Methode query()

df.query("expression") accepteert een tekenreeks met een expressie, die vaak leesbaarder is dan booleaanse maskers.

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)

Filteren met isin()

isin(list) filtert rijen waarin de waarde van een kolom in een bepaalde lijst voorkomt.

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() voor filteren op bereik

series.between(left, right) geeft True terug voor waarden in [left, right] — standaard inclusief de grenzen.

import pandas as pd

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

loc voor toewijzing

Gebruik altijd loc/iloc voor toewijzing ter plaatse, om de SettingWithCopyWarning te voorkomen.

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 en iat voor afzonderlijke waarden

at[label, col] en iat[i, j] bieden snelle toegang tot scalaire waarden — sneller dan loc/iloc voor afzonderlijke waarden.

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)

Selecteren op Dtype

select_dtypes(include/exclude) selecteert kolommen op basis van hun gegevenstype.

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']

Duplicaten verwijderen

drop_duplicates() verwijdert dubbele rijen. Geef subset op om alleen bepaalde kolommen te vergelijken.

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 en nsmallest

Selecteer efficiënt de bovenste of onderste N rijen op basis van een kolomwaarde.

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

Korte controle

Wat is het verschil tussen loc en iloc?

Samenvatting

Gebruik loc[label] voor selectie op basis van labels en iloc[i] voor selectie op basis van positie. Filter rijen met booleaanse maskers die je combineert met &/|. Gebruik query() voor leesbare filters en isin() voor controles op lidmaatschap. Wijs altijd toe via loc om SettingWithCopyWarning te voorkomen.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Indexeren, filteren en booleaanse maskers” gratis?

Ja — de volledige tekst van “Indexeren, filteren en booleaanse maskers” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “Indexeren, filteren en booleaanse maskers”?

Selecteer rijen en kolommen met loc, iloc en booleaanse voorwaarden. Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Indexeren, filteren en booleaanse maskers”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Basisprincipes van Series en DataFrame
  2. Indexeren, filteren en booleaanse maskers
  3. GroupBy, aggregatie en draaitabellen
  4. Samenvoegen, koppelen en gegevens opschonen
← Terug naar Python Academy