Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Filtrering och Val av Data med Python | Arbeta med data
Databricks-Grunder: En Nybörjarguide

Filtrering och Val av Data med Python

Svep för att visa menyn

Note
Definition

Att välja och filtrera är de vanligaste operationerna vid datamanipulation. Att välja gör det möjligt att plocka ut specifika kolumner av intresse, medan filtrering gör det möjligt att begränsa raderna baserat på specifika kriterier eller villkor.

I de flesta verkliga scenarier behöver du inte arbeta med varje enskild kolumn eller rad i en datamängd. Stora tabeller kan ha hundratals kolumner och miljontals rader, varav de flesta kan vara irrelevanta för din specifika analys. I detta kapitel lär du dig hur du "skär ut" exakt den data du behöver med hjälp av metoderna select() och filter().

Välja specifika kolumner

Metoden select() gör det möjligt att skapa en ny DataFrame som endast innehåller de kolumner du väljer. Detta minskar mängden minne som din kluster använder och gör resultaten mycket lättare att läsa.

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

display(selected_df)

Observera att Spark inte ändrar den ursprungliga df. Istället skapas en ny som kallas selected_df. Om du vill välja alla kolumner utom en, eller utföra en beräkning under urvalet, används mer avancerad syntax, men för grundläggande uppgifter är det standard att ange kolumnnamnen som strängar.

Filtrering av rader med villkor

Metoden filter() (eller dess alias where()) fungerar som en sil för dina data. Du anger ett villkor, och Spark behåller endast de rader där villkoret är sant.

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

display(filtered_df)

Du kan använda vanliga jämförelseoperatorer som == (lika med), != (inte lika med), > (större än) och < (mindre än).

Kombinera flera filter

Ofta behöver du tillämpa mer än en regel samtidigt. För att göra detta kan du kedja filter tillsammans eller använda logiska operatorer som "Och" (&) och "Eller" (|).

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

display(good_carat_df)
Note
Observera

När du kombinerar filter med & eller |, omslut alltid varje enskilt villkor med parenteser. Detta säkerställer att Spark utvärderar logiken korrekt.

Välja och filtrera i ett steg

Eftersom Spark använder ett "fluent" API kan du kedja ihop dessa kommandon på en enda kodrad. Detta är ett mycket vanligt mönster inom professionell data engineering:

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

display(high_profit_df)

Kontrollera ditt arbete

Efter varje urval eller filtrering är det en god vana att köra en count(). Om du börjar med 10 000 rader och efter en filtrering har 0, vet du att ditt filtervillkor kan vara för strikt eller innehålla ett stavfel i strängvärdena.

1. Vilken metod skulle du använda om du vill välja endast 3 kolumner från en tabell med 50 kolumner?

2. I Python, vilket är det korrekta sättet att filtrera rader där "Total_Profit" är större än 1000?

question mark

Vilken metod skulle du använda om du vill välja endast 3 kolumner från en tabell med 50 kolumner?

Vänligen välj det korrekta svaret

question mark

I Python, vilket är det korrekta sättet att filtrera rader där "Total_Profit" är större än 1000?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 4
some-alt