Python pandas DataFrame.groupby() funkt­siooni abil saate gru­pee­rida andmeid kindlate kri­tee­riumide alusel ning teha andmetega erinevaid koon­da­misi ja tei­sen­dusi.

Mis on pandas DataFrame.groupby() süntaks?

Pandas groupby() võtab vastu kuni neli pa­ra­meet­rit. Põhiline süntaks on järgmine:

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

Olulised pa­ra­meet­rid groupby jaoks

Pa­ra­mee­ter Kirjeldus Vaikimisi väärtus
by Rüh­mi­ta­miseks kasutatav võti või Python -võtete loend; ei tohi kom­bi­nee­rida level-ga None
level Ka­su­ta­takse Mul­ti­In­dexi puhul ühe või mitme rüh­mi­ta­mise taseme mää­ra­miseks. None
as_index Kui True, mää­ra­takse rühma võtmed tu­le­mu­seks oleva DataFrame’i indeksiks. True
group_keys Kui True, lisatakse rühma võtmed rühmade in­deksisse. True
dropna Määrab, kas välistada rühmad, millel on NaN väärtused. True

Kuidas kasutada pandas DataFrame.groupby()

Funkt­sioon pandas groupby() on eriti kasulik suurte and­me­ko­gu­mite ana­lüü­si­miseks ja kok­ku­võt­miseks, aidates tuvastada mustreid või kõr­va­le­kal­deid.

Rüh­mi­ta­mine ja koon­da­mine

Allpool on näide müü­gi­and­mete 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)
python

Saadud and­me­raa­mis­tik 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       10

Järg­miseks rühmitame and­me­ko­gumi toodete kaupa, kasutades pandas groupby(). Seejärel arvutame iga toote müüdud koguse, kasutades funkt­siooni 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: int64

Mit­me­kord­sed koon­da­mised

Järgmises näites kasutame laien­da­tud and­me­ko­gu­mit, 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)
python

And­me­st­ruk­tuur 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      100

Kasutades pandas DataFrame.groupby(), rühmitame andmed toodete kaupa ja kasutame seejärel funkt­siooni 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
Go to Main Menu