Mis on pandas groupby() ja kuidas seda kasutada?
Python pandas DataFrame.groupby() funktsiooni abil saate grupeerida andmeid kindlate kriteeriumide alusel ning teha andmetega erinevaid koondamisi ja teisendusi.
Mis on pandas DataFrame.groupby() süntaks?
Pandas groupby() võtab vastu kuni neli parameetrit. Põhiline süntaks on järgmine:
DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)pythonOlulised parameetrid groupby jaoks
| Parameeter | Kirjeldus | Vaikimisi väärtus |
|---|---|---|
by
|
Rühmitamiseks kasutatav võti või Python -võtete loend; ei tohi kombineerida level-ga
|
None
|
level
|
Kasutatakse MultiIndexi puhul ühe või mitme rühmitamise taseme määramiseks. | None
|
as_index
|
Kui True, määratakse rühma võtmed tulemuseks oleva DataFrame’i indeksiks.
|
True
|
group_keys
|
Kui True, lisatakse rühma võtmed rühmade indeksisse.
|
True
|
dropna
|
Määrab, kas välistada rühmad, millel on NaN väärtused. | True
|
Kuidas kasutada pandas DataFrame.groupby()
Funktsioon pandas groupby() on eriti kasulik suurte andmekogumite analüüsimiseks ja kokkuvõtmiseks, aidates tuvastada mustreid või kõrvalekaldeid.
Rühmitamine ja koondamine
Allpool on näide müügiandmete kogumist, mis sisaldab teavet müügi kuupäeva, müüdud toote ja müüdud koguse kohta:
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)pythonSaadud andmeraamistik näeb välja järgmine:
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 10Järgmiseks rühmitame andmekogumi toodete kaupa, kasutades pandas groupby(). Seejärel arvutame iga toote müüdud koguse, kasutades funktsiooni sum():
# Group by product and calculate the sum of the quantity sold
summe = df.groupby('Product')['Quantity'].sum()
print(total)Tulemus näitab iga toote müüdud ühikute koguarvu:
Product
A 35
B 45
Name: Quantity, dtype: int64Mitmekordsed koondamised
Järgmises näites kasutame laiendatud andmekogumit, mis sisaldab ka tulusid:
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)pythonAndmestruktuur näeb välja järgmine:
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 100Kasutades pandas DataFrame.groupby(), rühmitame andmed toodete kaupa ja kasutame seejärel funktsiooni agg(), et arvutada kogukogus ja -tulu ning keskmine tulu toote kohta.
# Group by product and apply multiple aggregations
groups = df.groupby('Product').agg({
'Quantity': 'sum',
'Revenue': ['sum', 'mean']
})
print(groups)Siin on tulemus:
Quantity Revenue
sum sum mean
Product
A 35 350 116.666667
B 45 450 225.000000