A Python pandas DataFrame.groupby() függvénnyel az adatokat meghatározott kritériumok alapján csoportosíthatja, és különböző összesítéseket és átalakításokat hajthat végre az adatokon.

Mi a pandas DataFrame.groupby() szintaxisa?

A Pandas groupby() legfeljebb négy paramétert fogad el. Az alapvető szintaxis a következő:

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

Fontos paraméterek a groupby

Paraméter Leírás Alapértelmezett érték
by Csoportosításhoz használt kulcs vagy Python kulcsok listája; nem kombinálható a levelessel None
level MultiIndex esetén egy vagy több csoportosítási szint megadására használatos. None
as_index Ha True, akkor a csoportkulcsok a kapott DataFrame indexeként vannak beállítva. True
group_keys Ha True, akkor a csoportkulcsok bekerülnek a csoportok indexébe. True
dropna Meghatározza, hogy a NaN értékekkel rendelkező csoportokat ki kell-e zárni. True

A pandák használata DataFrame.groupby()

A pandas groupby() funkció különösen hasznos nagy adathalmazok elemzéséhez és összefoglalásához, segítve a minták vagy anomáliák azonosítását.

Csoportosítás és összesítés

Az alábbiakban egy példa adásvételi adatkészletet talál, amely tartalmazza az adásvétel dátumát, az eladott terméket és az eladott mennyiséget:

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

Az eredményül kapott DataFrame így néz ki:

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

Ezután a pandas groupby() segítségével csoportosítjuk az adatsort termékek szerint. Majd a sum() függvény segítségével kiszámítjuk az egyes termékek teljes eladási mennyiségét:

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

Az eredmény az egyes termékek eladott darabszámának összességét mutatja:

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

Többszörös összesítések

A következő példában egy kiterjesztett adatkészletet fogunk használni, amely a bevételeket is tartalmazza:

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

A DataFrame így néz ki:

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

A pandas DataFrame.groupby() segítségével csoportosítjuk az adatokat termékek szerint, majd a agg() függvény segítségével kiszámítjuk a teljes mennyiséget és bevételt, valamint az átlagos bevételt termékek szerint.

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

Íme az eredmény:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Ugrás a főmenübe