7
votes

Compter les multiples occurrences dans un ensemble

Group A: Bob 2, Mike 5
Group B: Jane 4

0 commentaires

3 Réponses :


46
votes

On dirait que vous pourriez être mieux avec un compteur : < Pré> xxx


3 commentaires

Et dans les versions <2.7, vous pouvez utiliser code.AcreState.com/recipes/576611- Contre-classe


J'ai essayé ceci sur un dataframe de pandas ayant 60 millions de lignes, fonctionnent bien en parallèle.


@Trypyy, je pense que vous avez cela en arrière. La classe de comptoirs fonctionne dans tout> = 2,7; Je viens d'utiliser certaines de ces méthodes dans Python3.7 sans problème.



5
votes

Utilisez un dict de dicts pour compter, par exemple. Comme suit:

{'A': {'Bob': 2}, 'B': {'Jane': 1}}


0 commentaires

-3
votes

from collections import Counter, defaultdict

lst = [('B', 'Bob'), ('A', 'Andy'), ('C', 'Charles'), ('A', 'Adam'), ('B', 'Abraham')]

# assumes people can appear in more than one group
def groups(lst):
    counter = Counter(lst)
    result = defaultdict(dict)
    for (group, name), value in counter.iteritems():
        result[group][name] = value
    return result


0 commentaires