Με τη συνάρτηση 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
Go to Main Menu