Méthodes pratiques d'agrégation
Techniques avancées d'agrégation de listes
La fonction reduce()
offre des capacités d'agrégation puissantes :
from functools import reduce
## Multiply all numbers in a list
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product) ## Output: 120
from itertools import groupby
from operator import itemgetter
## Complex aggregation with groupby
data = [
{'name': 'Alice', 'age': 30, 'city': 'New York'},
{'name': 'Bob', 'age': 25, 'city': 'San Francisco'},
{'name': 'Charlie', 'age': 30, 'city': 'New York'}
]
## Group by age and count
grouped_data = {}
for age, group in groupby(sorted(data, key=itemgetter('age')), key=itemgetter('age')):
grouped_data[age] = list(group)
print(f"Age {age}: {len(list(group))} people")
Visualisation du flux de travail d'agrégation
graph TD
A[Raw List] --> B{Aggregation Method}
B --> |Sum| C[Total Value]
B --> |Count| D[Element Count]
B --> |Group| E[Grouped Data]
B --> |Transform| F[Modified List]
Bibliothèques d'agrégation spécialisées
Agrégation avec Pandas
import pandas as pd
## DataFrame aggregation
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'score': [85, 92, 78]
})
## Multiple aggregation operations
result = df.agg({
'score': ['mean', 'max', 'min']
})
print(result)
Méthode |
Cas d'utilisation |
Complexité temporelle |
Efficacité mémoire |
sum() |
Totaux simples |
O(n) |
Faible |
reduce() |
Réductions complexes |
O(n) |
Modérée |
Agrégation Pandas |
Analyse de données |
O(n) |
Élevée |
Compréhension de liste |
Filtrage/Transformation |
O(n) |
Modérée |
Meilleures pratiques
- Choisissez la bonne méthode d'agrégation pour votre cas d'utilisation spécifique
- Prenez en compte les performances pour les grands ensembles de données
- Utilisez les fonctions intégrées de Python et les bibliothèques
LabEx recommande d'explorer ces techniques pour améliorer vos compétences en manipulation de données Python.
Gestion des erreurs dans l'agrégation
def safe_aggregate(data, aggregation_func):
try:
return aggregation_func(data)
except (TypeError, ValueError) as e:
print(f"Aggregation error: {e}")
return None
## Example usage
numbers = [1, 2, 3, 4, 5]
result = safe_aggregate(numbers, sum)
print(result) ## Output: 15
En maîtrisant ces méthodes pratiques d'agrégation, vous deviendrez plus compétent pour gérer les tâches complexes de traitement de données en Python.