Hvad er pandas groupby(), og hvordan bruges det?
Med Python pandas DataFrame.groupby() -funktionen kan du gruppere data baseret på specifikke kriterier og udføre forskellige aggregeringer og transformationer af dataene.
Hvad er syntaksen for pandas DataFrame.groupby()?
Pandas groupby() accepterer op til fire parametre. Den grundlæggende syntaks er som følger:
DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)pythonVigtige parametre for groupby
| Parameter | Beskrivelse | Standardværdi |
|---|---|---|
by
|
Nøgle eller Python-liste over nøgler, der skal grupperes efter; må ikke kombineres med level
|
None
|
level
|
Bruges til MultiIndex til at angive et eller flere niveauer for gruppering. | None
|
as_index
|
Hvis True, indstilles gruppekoderne som indeks for den resulterende DataFrame.
|
True
|
group_keys
|
Hvis True, inkluderes gruppekoderne i indeks for grupperne.
|
True
|
dropna
|
Angiver, om grupper med NaN-værdier skal udelades. | True
|
Sådan bruges pandas DataFrame.groupby()
Funktionen pandas groupby() er særligt nyttig til analyse og sammenfatning af store datasæt, da den hjælper med at identificere mønstre eller afvigelser.
Gruppering og aggregering
Nedenfor ses et eksempel på et salgsdatasæt, der indeholder oplysninger om salgsdato, solgt produkt og solgt mængde:
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)pythonDen resulterende DataFrame ser således ud:
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 10Dernæst grupperer vi datasættet efter produkt ved hjælp af pandas groupby(). Derefter beregner vi det samlede solgte antal for hvert produkt ved hjælp af funktionen sum():
# Group by product and calculate the sum of the quantity sold
summe = df.groupby('Product')['Quantity'].sum()
print(total)Resultatet viser det samlede antal solgte enheder for hvert produkt:
Product
A 35
B 45
Name: Quantity, dtype: int64Flere aggregeringer
I det følgende eksempel bruger vi et udvidet datasæt, der også indeholder indtægter:
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)pythonDataFrame ser således ud:
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 100Ved hjælp af pandas DataFrame.groupby() grupperer vi dataene efter produkt og bruger derefter funktionen agg() til at beregne den samlede mængde og omsætning samt den gennemsnitlige omsætning pr. produkt.
# Group by product and apply multiple aggregations
groups = df.groupby('Product').agg({
'Quantity': 'sum',
'Revenue': ['sum', 'mean']
})
print(groups)Her er resultatet:
Quantity Revenue
sum sum mean
Product
A 35 350 116.666667
B 45 450 225.000000