Met de Python pandas DataFrame.groupby() kunt u gegevens groeperen op basis van spe­ci­fie­ke criteria en ver­schil­len­de ag­gre­ga­ties en trans­for­ma­ties op de gegevens uitvoeren.

Wat is de syntaxis voor pandas DataFrame.groupby()?

Pandas groupby() ac­cep­teert maximaal vier pa­ra­me­ters. De ba­sis­syn­taxis is als volgt:

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

Be­lang­rij­ke pa­ra­me­ters voor groupby

Parameter Be­schrij­ving Stan­daard­waar­de
by Sleutel of Python-lijst met sleutels om te groeperen; niet te com­bi­ne­ren met level None
level Gebruikt voor Mul­ti­In­dex om een of meer niveaus voor groe­pe­ring te spe­ci­fi­ce­ren None
as_index Als True, worden de groeps­sleu­tels ingesteld als de index van het re­sul­te­ren­de DataFrame True
group_keys Als True, worden de groeps­sleu­tels opgenomen in de index van de groepen. True
dropna Geeft aan of groepen met NaN-waarden moeten worden uit­ge­slo­ten. True

Hoe pandas DataFrame.groupby() te gebruiken

De functie pandas groupby() is bijzonder nuttig voor het ana­ly­se­ren en sa­men­vat­ten van grote datasets, waardoor patronen of af­wij­kin­gen kunnen worden ge­ï­den­ti­fi­ceerd.

Groeperen en sa­men­voe­gen

Hieronder vindt u een voorbeeld van een ver­koop­da­ta­set met in­for­ma­tie over de ver­koop­da­tum, het verkochte product en de verkochte hoe­veel­heid:

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

Het re­sul­te­ren­de DataFrame ziet er als volgt uit:

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

Ver­vol­gens groeperen we de dataset op product met behulp van pandas groupby(). Daarna berekenen we de totale verkochte hoe­veel­heid voor elk product met behulp van de functie sum():

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

Het resultaat toont het totale aantal verkochte eenheden voor elk product:

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

Meerdere ag­gre­ga­ties

In het volgende voorbeeld gebruiken we een uit­ge­brei­de dataset die ook om­zet­ge­ge­vens bevat:

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

Het DataFrame ziet er als volgt uit:

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

Met behulp van pandas DataFrame.groupby() gaan we de gegevens groeperen op product en ver­vol­gens de functie agg() gebruiken om de totale hoe­veel­heid en omzet te berekenen, evenals de ge­mid­del­de omzet per product.

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

Dit is het resultaat:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Ga naar hoofdmenu