Gegevens Filteren en Selecteren met Python
Veeg om het menu te tonen
Selecteren en filteren zijn de meest voorkomende bewerkingen bij datamanipulatie. Selecteren maakt het mogelijk om specifieke kolommen van interesse te kiezen, terwijl Filteren het mogelijk maakt om rijen te beperken op basis van specifieke criteria of voorwaarden.
In de meeste praktijksituaties is het niet nodig om met elke kolom of rij in een dataset te werken. Grote tabellen kunnen honderden kolommen en miljoenen rijen bevatten, waarvan het merendeel mogelijk niet relevant is voor jouw specifieke analyse. In dit hoofdstuk leer je hoe je precies de gegevens "uitsnijdt" die je nodig hebt met behulp van de methoden select() en filter().
Specifieke kolommen selecteren
De methode select() maakt het mogelijk om een nieuwe DataFrame te creëren die alleen de door jou gekozen kolommen bevat. Dit vermindert het geheugengebruik van je cluster en maakt de resultaten veel overzichtelijker.
# Select only two specific columns
selected_df = df.select("carat", "price")
display(selected_df)
Let op dat Spark het originele df niet wijzigt. In plaats daarvan wordt er een nieuwe DataFrame aangemaakt met de naam selected_df. Als je alle kolommen behalve één wilt selecteren, of een berekening wilt uitvoeren tijdens de selectie, gebruik je meer geavanceerde syntax. Voor basisbewerkingen is het doorgeven van de kolomnamen als strings de standaardmethode.
Rijen filteren met voorwaarden
De methode filter() (of het alias where()) fungeert als een zeef voor je data. Je geeft een voorwaarde op, en Spark behoudt alleen de rijen waarvoor die voorwaarde waar is.
# Filter for rows where the carat is '0.23'
filtered_df = df.filter(df.carat == 0.23)
display(filtered_df)
Standaard vergelijkingsoperatoren zoals == (gelijk aan), != (niet gelijk aan), > (groter dan) en < (kleiner dan) gebruiken.
Meerdere filters combineren
Vaak is het nodig om meer dan één regel tegelijk toe te passen. Dit kan door filters te koppelen of logische operatoren zoals "And" (&) en "Or" (|) te gebruiken.
good_carat_df = df.filter((df.carat == 0.23) & (df.cut == "Good"))
display(good_carat_df)
Bij het combineren van filters met & of |, altijd elke afzonderlijke voorwaarde tussen haakjes plaatsen. Dit zorgt ervoor dat Spark de logica correct evalueert.
Selecteren en filteren in één stap
Omdat Spark een "fluent" API gebruikt, kun je deze commando's samenvoegen in één enkele regel code. Dit is een veelvoorkomend patroon in professionele data engineering:
# Select specific diamonds by `price > 500`
high_profit_df = df.select("carat", "price").filter(df.price > 500)
display(high_profit_df)
Uw werk controleren
Na elke selectie of filter is het een goede gewoonte om een count() uit te voeren. Als u begint met 10.000 rijen en na een filter heeft u er 0, dan weet u dat uw filtervoorwaarde mogelijk te streng is of een typefout bevat in de tekenreekswaarden.
1. Welke methode zou u gebruiken als u slechts 3 kolommen wilt kiezen uit een tabel met 50 kolommen?
2. Wat is in Python de juiste manier om te filteren op rijen waarbij "Total_Profit" groter is dan 1000?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.