我有以下数据帧:
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'])
Run Code Online (Sandbox Code Playgroud)
我把它通过想组id和group并计算每个词的数量为这个ID,组对.
所以最后我会得到这样的东西:
通过循环遍历所有行df.iterrows()并创建新数据帧,我能够实现我想要的目标,但这显然效率低下.(如果有帮助,我事先知道所有术语的列表,其中有~10个).
看起来我必须分组然后计算值,所以我尝试使用df.groupby(['id', 'group']).value_counts()哪个不起作用,因为value_counts在groupby系列而不是数据帧上运行.
无论如何,我可以实现这一点而不循环?