У меня есть следующий фреймворк:
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'])
Я хочу сгруппировать его с помощью id
и group
и вычислить число каждого члена для этой пары id, group.
Итак, в конце концов я получу что-то вроде этого:
Я смог добиться того, чего хочу, перейдя по всем строкам с помощью df.iterrows()
и создав новый фреймворк данных, но это явно неэффективно. (Если это помогает, я заранее знаю список всех терминов и их ~ 10).
Похоже, мне приходится группировать, а затем подсчитывать значения, поэтому я попробовал это с df.groupby(['id', 'group']).value_counts()
, который не работает, потому что value_counts работает в серии groupby, а не в кадре данных.
В любом случае я могу добиться этого без цикла?