J'ai le cadre de données suivant :
df = pd.DataFrame([
(1, 1, 'term1'),
(1, 2, 'term2'),
(1, 1, 'term1'),
(1, 1, 'term2'),
(2, 2, 'term3'),
(2, 3, 'term1'),
(2, 2, 'term1')
], columns=['id', 'group', 'term'])
Je veux les regrouper par id
y group
et calculer le nombre de chaque terme pour cette paire id, groupe.
Au final, je vais obtenir quelque chose comme ça :
J'ai pu obtenir ce que je voulais en bouclant sur toutes les lignes avec df.iterrows()
et de créer un nouveau cadre de données, mais cela est clairement inefficace. (Si cela peut aider, je connais la liste de tous les termes à l'avance et il y en a ~10).
Il semble que je doive regrouper par et ensuite compter les valeurs, donc j'ai essayé cela avec df.groupby(['id', 'group']).value_counts()
ce qui ne fonctionne pas car valeur_comptes opère sur la série groupby et non sur un dataframe.
Comment puis-je y parvenir sans faire de boucle ?