我有一个包含4列的数据框,其中一列是人们的名字,另一列是他们练习的活动。我希望每行前面出现该组合出现的次数。我发现计数的所有方法都会更改数据帧或减小数据帧的大小,仅使每种组合一次。我希望数据框在多于一列的情况下保持相同,并且组合存在的次数。有人知道吗?
答案 0 :(得分:1)
groupby
+ size
假设您的分组者列为0
和2
:
df['combination_count'] = df.groupby([0, 2])[1].transform('size')
要将新列移到最前面:
cols = df.columns.tolist()
cols.insert(0, cols.pop(cols.index('combination_count')))
df = df.reindex(columns=cols)