Mi az a pandas groupby() és hogyan kell használni?
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)pythonFontos 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)pythonAz 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 10Ezutá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: int64Tö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)pythonA 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 100A 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