我有以下数据框:
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 组对的每个项的数目。
所以最后我会得到这样的结果:
通过使用 df.iterrows()
对所有行进行循环并创建一个新的数据框架,我能够实现我想要的结果,但这显然效率低下。(如果有帮助的话,我事先知道所有术语的列表,它们大约有10个)。
看起来我必须按照值进行分组,然后计算值,所以我用 df.groupby(['id', 'group']).value_counts()
尝试了这个方法,但是没有用,因为 Value _ count在 groupby 序列上操作,而不是在数据帧上操作。
无论如何,我可以实现这个没有循环?