Group A: Bob 2, Mike 5 Group B: Jane 4
3 Réponses :
On dirait que vous pourriez être mieux avec un compteur : < Pré> xxx pré> p>
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.
Utilisez un dict de dicts pour compter, par exemple. Comme suit:
{'A': {'Bob': 2}, 'B': {'Jane': 1}}
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