Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Filtrering og Valg av Data med Python | Arbeide med Data
Databricks Grunnleggende: En Nybegynnerguide

Filtrering og Valg av Data med Python

Sveip for å vise menyen

Note
Definisjon

Valg og filtrering er de vanligste operasjonene innen datamanipulering. Valg lar deg plukke ut bestemte kolonner av interesse, mens filtrering lar deg begrense radene basert på spesifikke kriterier eller betingelser.

I de fleste virkelige scenarier trenger du ikke å arbeide med hver eneste kolonne eller rad i et datasett. Store tabeller kan ha hundrevis av kolonner og millioner av rader, hvorav de fleste kan være irrelevante for din spesifikke analyse. I dette kapittelet lærer du hvordan du kan "skjære ut" akkurat de dataene du trenger ved å bruke metodene select() og filter().

Velge spesifikke kolonner

Metoden select() lar deg opprette en ny DataFrame som kun inneholder de kolonnene du velger. Dette reduserer minnebruken i klyngen din og gjør resultatene mye enklere å lese.

# Select only two specific columns
selected_df = df.select("carat", "price")

display(selected_df)

Legg merke til at Spark ikke endrer den opprinnelige df. I stedet opprettes en ny kalt selected_df. Hvis du ønsker å velge alle kolonner unntatt én, eller utføre en beregning under utvalget, brukes mer avansert syntaks, men for grunnleggende oppgaver er det vanlig å sende kolonnenavnene som strenger.

Filtrering av rader med betingelser

Metoden filter() (eller aliaset where()) fungerer som en sil for dataene dine. Du oppgir en betingelse, og Spark beholder kun radene hvor denne betingelsen er sann.

# Filter for rows where the carat is '0.23'
filtered_df = df.filter(df.carat == 0.23)

display(filtered_df)

Du kan bruke vanlige sammenligningsoperatorer som == (lik), != (ulik), > (større enn) og < (mindre enn).

Kombinere flere filtre

Ofte er det behov for å bruke mer enn én regel samtidig. For å gjøre dette kan du kjede sammen filtre eller bruke logiske operatorer som "Og" (&) og "Eller" (|).

good_carat_df = df.filter((df.carat == 0.23) & (df.cut == "Good"))

display(good_carat_df)
Note
Merk

Når du kombinerer filtre med & eller |, må du alltid sette hver enkelt betingelse i parentes. Dette sikrer at Spark evaluerer logikken riktig.

Velge og filtrere i ett steg

Siden Spark bruker et "fluent" API, kan du kjede disse kommandoene sammen på én linje med kode. Dette er et svært vanlig mønster innen profesjonell data engineering:

# Select specific diamonds by `price > 500`
high_profit_df = df.select("carat", "price").filter(df.price > 500)

display(high_profit_df)

Kontrollere arbeidet ditt

Etter hver seleksjon eller filtrering er det en god vane å kjøre en count(). Hvis du starter med 10 000 rader og etter en filtrering har 0, vet du at filterbetingelsen kan være for streng eller inneholder en skrivefeil i strengverdiene.

1. Hvilken metode ville du brukt hvis du ønsker å velge kun 3 kolonner fra en tabell med 50 kolonner?

2. Hva er den riktige måten i Python for å filtrere rader der "Total_Profit" er større enn 1000?

question mark

Hvilken metode ville du brukt hvis du ønsker å velge kun 3 kolonner fra en tabell med 50 kolonner?

Velg det helt riktige svaret

question mark

Hva er den riktige måten i Python for å filtrere rader der "Total_Profit" er større enn 1000?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 4
some-alt