Cu funcția Python pandas DataFrame.groupby(), puteți grupa datele pe baza unor criterii specifice și puteți efectua diverse agregări și transformări ale datelor.

Care este sintaxa pentru pandas DataFrame.groupby()?

Pandas groupby() acceptă până la patru parametri. Sintaxa de bază este următoarea:

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

Parametri importanți pentru groupby

Parametru Descriere Valoare implicită
by Cheie sau listă Python de chei pentru grupare; nu se combină cu level None
level Utilizat pentru MultiIndex pentru a specifica unul sau mai multe niveluri pentru grupare. None
as_index Dacă este True, cheile grupului sunt setate ca index al DataFrame-ului rezultat. True
group_keys Dacă True, cheile de grup sunt incluse în indexul grupurilor. True
dropna Specifică dacă se exclud grupurile cu valori NaN. True

Cum se utilizează pandas DataFrame.groupby()

Funcția pandas groupby() este deosebit de utilă pentru analizarea și sintetizarea seturilor mari de date, ajutând la identificarea tiparelor sau anomaliilor.

Gruparea și agregarea

Mai jos este un exemplu de set de date privind vânzările, care conține informații despre data vânzării, produsul vândut și cantitatea vândută:

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

DataFrame-ul rezultat arată astfel:

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

Apoi, vom grupa setul de date în funcție de produs folosind pandas groupby(). Apoi, vom calcula cantitatea totală vândută pentru fiecare produs folosind funcția sum():

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

Rezultatul arată numărul total de unități vândute pentru fiecare produs:

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

Agregări multiple

În exemplul următor, vom utiliza un set de date extins care include și veniturile:

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 arată astfel:

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

Folosind pandas DataFrame.groupby(), vom grupa datele în funcție de produs și apoi vom utiliza funcția agg() pentru a calcula cantitatea totală și veniturile, precum și veniturile medii pe produs.

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

Iată rezultatul:

Quantity Revenue        
          sum    sum    mean
Product                  
A          35    350  116.666667
B          45    450  225.000000
Mergi la meniul principal