Iz­man­to­jot Python pandas DataFrame.groupby() funkciju, varat grupēt datus pēc kon­krē­tiem kri­tē­ri­jiem un veikt dažādas datu ap­ko­po­ju­mus un pār­vei­do­ju­mus.

Kāda ir pandas DataFrame.groupby() sintakse?

Pandas groupby() pieņem līdz četriem pa­ra­met­riem. Pamata sintakse ir šāda:

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

Svarīgi parametri groupby

Parametrs Apraksts No­klu­sē­ju­ma vērtība
by Atslēga vai Python atslēgu saraksts, pēc kura grupēt; nedrīkst kombinēt ar level None
level Izmanto Mul­tiIn­dex, lai norādītu vienu vai vairākus gru­pē­ša­nas līmeņus. None
as_index Ja True, grupas atslēgas tiek ie­sta­tī­tas kā rezultātā iegūtā DataFrame indekss True
group_keys Ja True, grupu atslēgas tiek iekļautas grupu indeksā. True
dropna Norāda, vai izslēgt grupas ar NaN vērtībām True

Kā lietot pandas DataFrame.groupby()

Funkcija pandas groupby() ir īpaši noderīga lielu datu kopu analīzei un ap­ko­po­ša­nai, palīdzot iden­ti­fi­cēt modeļus vai ano­mā­li­jas.

Grupēšana un ap­ko­po­jums

Zemāk ir piemērs pār­do­ša­nas datu kopai, kas satur in­for­mā­ci­ju par pār­do­ša­nas datumu, pār­do­ta­jiem pro­duk­tiem un pār­do­ta­jiem dau­dzu­miem:

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

Rezultātā iegūtais DataFrame izskatās šādi:

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

Tālāk mēs grupēsim datu kopu pēc produkta, iz­man­to­jot pandas groupby(). Tad ap­rē­ķi­nā­sim katra produkta kopējo pārdotā daudzumu, iz­man­to­jot funkciju sum():

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

Rezultāts parāda kopējo pārdotā skaitu katram produktam:

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

Vairāki ap­ko­po­ju­mi

Šajā piemērā iz­man­to­sim pa­pla­ši­nā­tu datu kopu, kas ietver arī ieņēmumus:

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 izskatās šādi:

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

Iz­man­to­jot pandas DataFrame.groupby(), mēs grupēsim datus pēc produkta un pēc tam iz­man­to­sim agg() funkciju, lai ap­rē­ķi­nā­tu kopējo daudzumu un ieņēmumus, kā arī vidējos ieņēmumus par produktu.

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

Šeit ir rezultāts:

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