Med funktionen Python pandas DataFrame.groupby() kan du gruppera data utifrån specifika kriterier och utföra olika aggregeringar och transformationer av data.

Vad är syntaxen för pandas DataFrame.groupby()?

Pandas groupby() accepterar upp till fyra parametrar. Den grundläggande syntaxen är följande:

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

Viktiga parametrar för groupby

Parameter Beskrivning Standardvärde
by Nyckel eller Python-lista med nycklar att gruppera efter; får inte kombineras med level None
level Används för MultiIndex för att ange en eller flera nivåer för gruppering. None
as_index Om True, anges gruppnycklarna som index för den resulterande DataFrame. True
group_keys Om True, inkluderas gruppnycklarna i indexet för grupperna. True
dropna Anger om grupper med NaN-värden ska exkluderas. True

Hur man använder pandas DataFrame.groupby()

Funktionen pandas groupby() är särskilt användbar för att analysera och sammanfatta stora datamängder, vilket hjälper till att identifiera mönster eller avvikelser.

Gruppering och aggregering

Nedan följer ett exempel på en försäljningsdatabas som innehåller information om försäljningsdatum, såld produkt och såld kvantitet:

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 resulterande DataFrame ser ut så här:

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

Därefter grupperar vi datasetet efter produkt med hjälp av pandas groupby(). Sedan beräknar vi den totala sålda kvantiteten för varje produkt med hjälp av funktionen sum():

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

Resultatet visar det totala antalet sålda enheter för varje produkt:

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

Flera aggregeringar

I följande exempel kommer vi att använda en utökad dataset som även inkluderar intäkter:

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 ut så här:

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

Med hjälp av pandas DataFrame.groupby() kommer vi att gruppera data efter produkt och sedan använda funktionen agg() för att beräkna den totala kvantiteten och intäkterna, samt den genomsnittliga intäkten per produkt.

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

Här är resultatet:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Gå till huvudmeny