Τι είναι το pandas groupby() και πώς χρησιμοποιείται
Με τη συνάρτηση Python pandas DataFrame.groupby(), μπορείτε να ομαδοποιήσετε δεδομένα με βάση συγκεκριμένα κριτήρια και να εκτελέσετε διάφορες συγκεντρώσεις και μετασχηματισμούς στα δεδομένα.
Ποια είναι η σύνταξη για το pandas DataFrame.groupby();
Το Pandas groupby() δέχεται έως και τέσσερις παραμέτρους. Η βασική σύνταξη έχει ως εξής:
DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)pythonΣημαντικές παράμετροι για groupby
| Παράμετρος | Περιγραφή | Προεπιλεγμένη τιμή |
|---|---|---|
by
|
Κλειδί ή λίστα κλειδιών Python για ομαδοποίηση. Δεν πρέπει να συνδυάζεται με level.
|
None
|
level
|
Χρησιμοποιείται για το MultiIndex για τον καθορισμό ενός ή περισσότερων επιπέδων ομαδοποίησης. | None
|
as_index
|
Εάν True, τα κλειδιά ομάδας ορίζονται ως δείκτης του DataFrame που προκύπτει.
|
True
|
group_keys
|
Εάν True, τα κλειδιά ομάδας περιλαμβάνονται στον δείκτη των ομάδων.
|
True
|
dropna
|
Καθορίζει εάν θα εξαιρούνται οι ομάδες με τιμές NaN. | True
|
Πώς να χρησιμοποιήσετε pandas DataFrame.groupby()
Η συνάρτηση pandas groupby() είναι ιδιαίτερα χρήσιμη για την ανάλυση και τη σύνοψη μεγάλων συνόλων δεδομένων, βοηθώντας στον εντοπισμό προτύπων ή ανωμαλιών.
Ομαδοποίηση και συγκέντρωση
Παρακάτω ακολουθεί ένα παράδειγμα συνόλου δεδομένων πωλήσεων που περιέχει πληροφορίες σχετικά με την ημερομηνία πώλησης, το προϊόν που πωλήθηκε και την ποσότητα που πωλήθηκε:
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 έχει την εξής μορφή:
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Στη συνέχεια, θα ομαδοποιήσουμε το σύνολο δεδομένων ανά προϊόν χρησιμοποιώντας pandas groupby(). Έπειτα, θα υπολογίσουμε τη συνολική ποσότητα που πωλήθηκε για κάθε προϊόν χρησιμοποιώντας τη συνάρτηση sum():
# Group by product and calculate the sum of the quantity sold
summe = df.groupby('Product')['Quantity'].sum()
print(total)Το αποτέλεσμα δείχνει τον συνολικό αριθμό μονάδων που πωλήθηκαν για κάθε προϊόν:
Product
A 35
B 45
Name: Quantity, dtype: int64Πολλαπλές συγκεντρώσεις
Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε ένα εκτεταμένο σύνολο δεδομένων που περιλαμβάνει επίσης τα έσοδα:
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 έχει την εξής μορφή:
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Χρησιμοποιώντας pandas DataFrame.groupby(), θα ομαδοποιήσουμε τα δεδομένα ανά προϊόν και στη συνέχεια θα χρησιμοποιήσουμε τη συνάρτηση agg() για να υπολογίσουμε τη συνολική ποσότητα και τα έσοδα, καθώς και τα μέσα έσοδα ανά προϊόν.
# Group by product and apply multiple aggregations
groups = df.groupby('Product').agg({
'Quantity': 'sum',
'Revenue': ['sum', 'mean']
})
print(groups)Εδώ είναι το αποτέλεσμα:
Quantity Revenue
sum sum mean
Product
A 35 350 116.666667
B 45 450 225.000000