Pomocou funkcie Python pandas DataFrame.groupby() môžete zoskupiť údaje na základe konkrétnych kritérií a vykonávať rôzne agregácie a transformácie údajov.

Aká je syntax pre pandas DataFrame.groupby()?

Pandas groupby() prijíma až štyri parametre. Základná syntax je nasledovná:

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

Dôležité parametre pre groupby

Parameter Popis Predvolená hodnota
by Kľúč alebo zoznam kľúčov Python na zoskupenie; nesmie sa kombinovať s level None
level Používa sa pre MultiIndex na určenie jednej alebo viacerých úrovní pre zoskupenie. None
as_index Ak je hodnota True, kľúče skupiny sú nastavené ako index výsledného DataFrame. True
group_keys Ak True, kľúče skupiny sú zahrnuté v indexe skupín. True
dropna Určuje, či sa majú vylúčiť skupiny s hodnotami NaN. True

Ako používať pandas DataFrame.groupby()

Funkcia pandas groupby() je obzvlášť užitočná pri analýze a sumarizácii veľkých dátových súborov, kde pomáha identifikovať vzory alebo anomálie.

Zoskupovanie a agregovanie

Nižšie je uvedený príklad súboru údajov o predaji, ktorý obsahuje informácie o dátume predaja, predanom produkte a predanom množstve:

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

Výsledný DataFrame vyzerá takto:

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

Ďalej zoskupíme dátový súbor podľa produktu pomocou pandas groupby(). Potom vypočítame celkové množstvo predané pre každý produkt pomocou funkcie sum():

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

Výsledok ukazuje celkový počet predaných jednotiek pre každý produkt:

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

Viacnásobné agregácie

V nasledujúcom príklade použijeme rozšírený súbor údajov, ktorý obsahuje aj tržby:

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 vyzerá takto:

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

Pomocou pandas DataFrame.groupby() zoskupíme údaje podľa produktu a potom pomocou funkcie agg() vypočítame celkové množstvo a tržby, ako aj priemerné tržby na produkt.

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

Tu je výsledok:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Prejsť na hlavné menu