Met de Python pandas DataFrame.groupby() -functie kunt u gegevens groeperen op basis van specifieke criteria en verschillende aggregaties en transformaties op de gegevens uitvoeren.

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

Pandas groupby() accepteert maximaal vier parameters. De basissyntaxis is als volgt:

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

Belangrijke parameters voor groupby

Parameter Beschrijving Standaardwaarde
by Sleutel of Python-lijst met sleutels om te groeperen; niet te combineren met level None
level Gebruikt voor MultiIndex om een of meer niveaus voor groepering te specificeren None
as_index Als True, worden de groepssleutels ingesteld als de index van het resulterende DataFrame True
group_keys Als True, worden de groepssleutels opgenomen in de index van de groepen. True
dropna Geeft aan of groepen met NaN-waarden moeten worden uitgesloten. True

Hoe pandas DataFrame.groupby() te gebruiken

De functie pandas groupby() is bijzonder nuttig voor het analyseren en samenvatten van grote datasets, waardoor patronen of afwijkingen kunnen worden geïdentificeerd.

Groeperen en samenvoegen

Hieronder vindt u een voorbeeld van een verkoopdataset met informatie over de verkoopdatum, het verkochte product en de verkochte hoeveelheid:

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 resulterende 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

Vervolgens groeperen we de dataset op product met behulp van pandas groupby(). Daarna berekenen we de totale verkochte hoeveelheid 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 aggregaties

In het volgende voorbeeld gebruiken we een uitgebreide dataset die ook omzetgegevens 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 vervolgens de functie agg() gebruiken om de totale hoeveelheid en omzet te berekenen, evenals de gemiddelde 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