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

Aggregering och Gruppering i Python

Svep för att visa menyn

Note
Definition

Aggregering är processen att sammanfatta flera rader av data till ett enda meningsfullt värde, såsom summa, medelvärde eller antal. Gruppering gör det möjligt att tillämpa dessa sammanfattningar på specifika kategorier, till exempel att hitta den totala försäljningen för varje enskild region.

Sällan behöver du titta på miljontals individuella rader av rådata. Vanligtvis vill du förstå "helhetsbilden" – totaler, medelvärden eller antal per kategori. I Spark kan du uppnå detta genom att kombinera två kraftfulla metoder: groupBy() och agg().

Det grundläggande groupBy-mönstret

För att sammanfatta data efter en specifik kategori använder du först metoden groupBy(). Detta instruerar Spark att samla alla rader som delar samma värde (som "cut" i diamonds-tabellen) i en grupp. Själva gruppering gör dock ingenting; du måste följa upp med en aggregering.

# Group by cut and count how many rows are in each
count_df = df.groupBy("cut").count()

display(count_df)

Utföra matematiska operationer med sum(), avg() och max()

När du har grupperat dina data kan du tillämpa matematiska funktioner på dina numeriska kolumner. Om du vill se den totala vinsten per objekttyp använder du .sum().

# Total total_depth per cut category
total_depth = df.groupBy("cut").sum("x")

display(total_depth)

Observera att Spark automatiskt byter namn på kolumnen till sum(x). I nästa kapitel kommer vi att lära oss hur man gör dessa namn mer professionella.

Metoden agg() för flera mätvärden

Om du behöver beräkna mer än en sak samtidigt—till exempel både genomsnittlig vinst och maximal intäkt för varje region—använder du metoden .agg() (aggregate). Detta är den professionella standarden för att skapa komplexa sammanfattningar.

from pyspark.sql import functions as F

# Calculate multiple metrics at once
summary_df = df.groupBy("cut").agg(
    F.sum("x"),
    F.avg("y"),
    F.max("z")
)

display(summary_df)
Note
Observera

Vi importerar pyspark.sql.functions as F för att få tillgång till dessa kraftfulla matematiska verktyg.

Gruppering efter flera kolumner

Du är inte begränsad till att gruppera efter endast en kategori. Du kan ange en lista med kolumner för att se data på en mer detaljerad nivå, till exempel det totala x för varje Color Type inom varje Cut.

multi_group_df = df.groupBy("cut", "color").sum("x")

display(multi_group_df)

Sortera resultaten

Aggregerad data är ofta lättare att läsa när den är sorterad. Du kan kedja metoden .orderBy() i slutet av din aggregering för att se dina bäst presterande kategorier överst i listan.

# Show highest profit categories first
sorted_df = summary_df.orderBy("sum(x)", ascending=False)

display(sorted_df)

1. Vilken metod måste du anropa INNAN du använder sum() eller avg() om du vill att resultaten ska delas upp per kategori?

2. Vilken fördel har man av att använda metoden .agg() istället för bara .sum()?

question mark

Vilken metod måste du anropa INNAN du använder sum() eller avg() om du vill att resultaten ska delas upp per kategori?

Vänligen välj det korrekta svaret

question mark

Vilken fördel har man av att använda metoden .agg() istället för bara .sum()?

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 6

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 6
some-alt