S funkcijo Python pandas DataFrame.groupby() lahko podatke raz­vr­sti­te po določenih merilih in izvedete različne agre­ga­ci­je in pre­o­bli­ko­va­nja podatkov.

Kakšna je sintaksa za pandas DataFrame.groupby()?

Pandas groupby() sprejema do štiri parametre. Osnovna sintaksa je naslednja:

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

Pomembni parametri za groupby

Parameter Opis Privzeta vrednost
by Ključ ali Pythonov seznam ključev za zdru­že­va­nje v skupine; ne sme se kom­bi­ni­ra­ti s level None
level Uporablja se za Mul­ti­In­dex za določitev ene ali več ravni za zdru­že­va­nje. None
as_index Če je True, so ključi skupine na­sta­vlje­ni kot indeks končnega DataFrame-a. True
group_keys Če je True, so ključi skupin vključeni v indeks skupin. True
dropna Določa, ali naj se iz­klju­či­jo skupine z vre­dnost­mi NaN. True

Kako upo­ra­blja­ti pandas DataFrame.groupby()

Funkcija pandas groupby() je še posebej uporabna za analizo in pov­ze­ma­nje velikih po­dat­kov­nih nizov, saj pomaga pri pre­po­zna­va­nju vzorcev ali anomalij.

Raz­vr­šča­nje in zdru­že­va­nje

Spodaj je primer po­dat­kov­ne­ga niza o prodaji, ki vsebuje in­for­ma­ci­je o datumu prodaje, prodanem izdelku in prodani količini:

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

Re­zul­ta­tni DataFrame izgleda takole:

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

Nato bomo po­dat­kov­ni niz raz­vr­sti­li po izdelkih z uporabo pandas groupby(). Nato bomo iz­ra­ču­na­li skupno prodano količino za vsak izdelek z uporabo funkcije sum():

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

Rezultat prikazuje skupno število prodanih enot za vsak izdelek:

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

Večkratne agre­ga­ci­je

V na­sle­dnjem primeru bomo uporabili razširjen niz podatkov, ki vključuje tudi prihodke:

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 izgleda takole:

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

Z uporabo pandas DataFrame.groupby() bomo podatke raz­vr­sti­li po izdelkih in nato s funkcijo agg() iz­ra­ču­na­li skupno količino in prihodek ter povprečni prihodek na izdelek.

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

Tukaj je rezultat:

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