Counter & defaultdict
Counter compte les occurrences d'une collection en une ligne et defaultdict crée une valeur par défaut pour chaque nouvelle clé. Ils simplifient comptages et regroupements sans pandas.
- collections
- Counter
- defaultdict
- comptage
- regroupement
- most_common
Syntaxe
from collections import Counter, defaultdictc = Counter(iterable) c.most_common(n) c[cle] # 0 si absented = defaultdict(list) d[cle].append(x)Exemple
from collections import Counter, defaultdictcodes_http = ["200", "404", "200", "500", "200", "404"]compte = Counter(codes_http)print(compte.most_common(2)) # → [('200', 3), ('404', 2)]print(compte["302"]) # → 0ventes = [("Lyon", 120), ("Paris", 300), ("Lyon", 80)]par_ville = defaultdict(list)for ville, montant in ventes: par_ville[ville].append(montant)print(dict(par_ville)) # → {'Lyon': [120, 80], 'Paris': [300]}totaux = defaultdict(int)for ville, montant in ventes: totaux[ville] += montantprint(totaux["Lyon"]) # → 200À retenir
- Une clé absente d'un Counter vaut 0 sans être créée ; deux Counter s'additionnent (c1 + c2), ce qui cumule des comptages par lot.
- defaultdict(int) démarre chaque compteur à 0, defaultdict(list) chaque groupe à une liste vide, defaultdict(set) à un ensemble vide.
- Piège : avec un defaultdict, la simple lecture d'une clé absente (d["x"]) la crée. Testez la présence avec "x" in d, ou lisez avec d.get("x").
- Counter(texte.split()) donne la fréquence des mots d'un texte en une ligne.
- Dès que les données forment un tableau, value_counts() et groupby() de pandas font la même chose avec davantage d'options.
Voir aussi
- DictionnairesUn dictionnaire associe des clés uniques à des valeurs, comme une fiche ou une ligne de table. On s'en sert pour retrouver une information par son identifiant, compter ou regrouper.
- zip & enumerateenumerate numérote les éléments d'une séquence et zip parcourt plusieurs séquences en parallèle. Ils remplacent les boucles sur range(len(...)), plus longues et plus fragiles.
- sorted, min, maxsorted, min et max trient ou extraient les extrêmes, et leur paramètre key choisit le critère : une colonne, une longueur, un calcul. C'est l'usage le plus courant des fonctions lambda.