Med funk­tio­nen Python pandas DataFrame.groupby() kan du gruppera data utifrån specifika kriterier och utföra olika ag­gre­ge­ring­ar och trans­for­ma­tio­ner av data.

Vad är syntaxen för pandas DataFrame.groupby()?

Pandas groupby() ac­cep­te­rar upp till fyra pa­ra­met­rar. Den grund­läg­gan­de syntaxen är följande:

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

Viktiga pa­ra­met­rar för groupby

Parameter Be­skriv­ning Stan­dard­vär­de
by Nyckel eller Python-lista med nycklar att gruppera efter; får inte kom­bi­ne­ras med level None
level Används för Mul­ti­In­dex för att ange en eller flera nivåer för grup­pe­ring. None
as_index Om True, anges grupp­nyck­lar­na som index för den re­sul­te­ran­de DataFrame. True
group_keys Om True, in­klu­de­ras grupp­nyck­lar­na i indexet för grupperna. True
dropna Anger om grupper med NaN-värden ska ex­klu­de­ras. True

Hur man använder pandas DataFrame.groupby()

Funk­tio­nen pandas groupby() är särskilt användbar för att analysera och sam­man­fat­ta stora da­ta­mäng­der, vilket hjälper till att iden­ti­fi­e­ra mönster eller av­vi­kel­ser.

Grup­pe­ring och ag­gre­ge­ring

Nedan följer ett exempel på en för­sälj­nings­da­ta­bas som in­ne­hål­ler in­for­ma­tion om för­sälj­nings­da­tum, såld produkt och såld kvantitet:

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

Den re­sul­te­ran­de DataFrame ser ut så här:

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

Därefter grupperar vi datasetet efter produkt med hjälp av pandas groupby(). Sedan beräknar vi den totala sålda kvan­ti­te­ten för varje produkt med hjälp av funk­tio­nen sum():

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

Re­sul­ta­tet visar det totala antalet sålda enheter för varje produkt:

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

Flera ag­gre­ge­ring­ar

I följande exempel kommer vi att använda en utökad dataset som även in­klu­de­rar intäkter:

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 ser ut så här:

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

Med hjälp av pandas DataFrame.groupby() kommer vi att gruppera data efter produkt och sedan använda funk­tio­nen agg() för att beräkna den totala kvan­ti­te­ten och in­täk­ter­na, samt den ge­nom­snitt­li­ga intäkten per produkt.

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

Här är re­sul­ta­tet:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Gå till huvudmeny