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

Aggregasjon og Gruppering i Python

Sveip for å vise menyen

Note
Definisjon

Aggregasjon er prosessen med å oppsummere flere rader med data til én meningsfull verdi, for eksempel en sum, et gjennomsnitt eller et antall. Gruppering gjør det mulig å bruke slike oppsummeringer på bestemte kategorier, som å finne det totale salget for hver enkelt region.

Det er sjelden nødvendig å se på millioner av individuelle rader med rådata. Vanligvis ønsker du å få oversikt – totaler, gjennomsnitt eller antall per kategori. I Spark kan du oppnå dette ved å kombinere to kraftige metoder: groupBy() og agg().

Det grunnleggende groupBy-mønsteret

For å oppsummere data etter en bestemt kategori, bruker du først metoden groupBy(). Dette forteller Spark at alle rader med samme verdi (som "cut" i diamonds-tabellen) skal samles i en gruppe. Gruppering alene gjør imidlertid ingenting; du må følge opp med en aggregering.

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

display(count_df)

Utføre matematiske operasjoner med sum(), avg() og max()

Når du har gruppert dataene dine, kan du bruke matematiske funksjoner på de numeriske kolonnene. Hvis du vil se total fortjeneste per varetype, bruker du .sum().

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

display(total_depth)

Legg merke til at Spark automatisk gir kolonnen navnet sum(x). I neste kapittel skal vi lære hvordan vi kan gjøre disse navnene mer profesjonelle.

agg()-metoden for flere måleverdier

Hvis du trenger å beregne mer enn én ting samtidig—for eksempel både gjennomsnittlig fortjeneste og maksimal omsetning for hver region—bruker du .agg() (aggregate)-metoden. Dette er den profesjonelle standarden for å lage komplekse sammendrag.

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
Merk

Vi importerer pyspark.sql.functions as F for å få tilgang til disse kraftige matematiske verktøyene.

Gruppering etter flere kolonner

Du er ikke begrenset til å gruppere etter kun én kategori. Du kan sende inn en liste med kolonner for å se data på et mer detaljert nivå, for eksempel total x for hver Color Type innenfor hver Cut.

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

display(multi_group_df)

Sortering av resultater

Aggregerte data er ofte lettere å lese når de er sortert. Du kan kjede metoden .orderBy() til slutten av aggregeringen for å vise de best presterende kategoriene øverst på listen.

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

display(sorted_df)

1. Hvilken metode må du kalle FØR du bruker sum() eller avg() hvis du vil ha resultatene fordelt etter kategori?

2. Hva er fordelen med å bruke .agg()-metoden i stedet for bare .sum()?

question mark

Hvilken metode må du kalle FØR du bruker sum() eller avg() hvis du vil ha resultatene fordelt etter kategori?

Velg det helt riktige svaret

question mark

Hva er fordelen med å bruke .agg()-metoden i stedet for bare .sum()?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 6

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