Med Python pandas DataFrame.groupby() -funksjonen kan du gruppere data basert på spesifikke kriterier og utføre ulike aggregeringer og transformasjoner av dataene.

Hva er syntaksen for pandas DataFrame.groupby()?

Pandas groupby() aksepterer opptil fire parametere. Den grunnleggende syntaksen er som følger:

DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)
python

Viktige parametere for groupby

Parameter Beskrivelse Standardverdi
by Nøkkel eller Python-liste over nøkler som skal grupperes etter; skal ikke kombineres med level None
level Brukes for MultiIndex for å spesifisere ett eller flere nivåer for gruppering. None
as_index Hvis True, blir gruppekodene angitt som indeksen for den resulterende DataFrame. True
group_keys Hvis True, blir gruppekodene inkludert i indeksen for gruppene. True
dropna Angir om grupper med NaN-verdier skal ekskluderes. True

Hvordan bruke pandas DataFrame.groupby()

Funksjonen pandas groupby() er spesielt nyttig for å analysere og oppsummere store datasett, og hjelper til med å identifisere mønstre eller avvik.

Gruppering og aggregering

Nedenfor er et eksempel på et salgsdatasett som inneholder informasjon om salgsdato, solgt produkt og solgt mengde:

import pandas as pd
# Sample sales dataset
data = {
    'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Product': ['A', 'B', 'A', 'B', 'A'],
    'Quantity': [10, 20, 15, 25, 10]
}
df = pd.DataFrame(data)
print(df)
python

Den resulterende DataFrame ser slik ut:

Date Product  Quantity
0  2021-01-01       A       10
1  2021-01-01       B       20
2  2021-01-02       A       15
3  2021-01-02       B       25
4  2021-01-03       A       10

Deretter grupperer vi datasettet etter produkt ved hjelp av pandas groupby(). Deretter beregner vi det totale antallet solgte enheter for hvert produkt ved hjelp av funksjonen sum():

# Group by product and calculate the sum of the quantity sold
summe = df.groupby('Product')['Quantity'].sum()
print(total)

Resultatet viser det totale antallet solgte enheter for hvert produkt:

Product
A    35
B    45
Name: Quantity, dtype: int64

Flere aggregeringer

I det følgende eksemplet skal vi bruke et utvidet datasett som også inkluderer inntekter:

data = {
    'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Product': ['A', 'B', 'A', 'B', 'A'],
    'Quantity': [10, 20, 15, 25, 10],
    'Revenue': [100, 200, 150, 250, 100]
}
df = pd.DataFrame(data)
print(df)
python

DataFrame ser slik ut:

Date Product  Quantity  Revenue
0  2021-01-01       A       10      100
1  2021-01-01       B       20      200
2  2021-01-02       A       15      150
3  2021-01-02       B       25      250
4  2021-01-03       A       10      100

Ved hjelp av pandas DataFrame.groupby() skal vi gruppere dataene etter produkt og deretter bruke funksjonen agg() til å beregne total mengde og omsetning, samt gjennomsnittlig omsetning per produkt.

# Group by product and apply multiple aggregations
groups = df.groupby('Product').agg({
    'Quantity': 'sum',
    'Revenue': ['sum', 'mean']
})
print(groups)

Her er resultatet:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Go to Main Menu