计算每个组中重复项的数量

AGH_TORN

假设我有DF

DF1:
IDField | Frame | Order
--------|-------|------
   20   | 10_01 |   0
   20   | 10_01 |   0
   20   | 10_01 |   1
   20   | 10_02 |   2
   5    | 02_01 |   0
   5    | 02_01 |   1

我想查找IDField 20Frame 10_01多少次重复Order在此示例中,Order重复一次。我不关心任何不重复的事物。我希望最终输出看起来像这样:

DF2:
IDField | Frame | Order | Duplicates
--------|-------|-------|-----------
   20   | 10_01 |   0   |     1

我曾尝试按以下方式进行分组和计数:

df2 = df1.groupby(['IDField', 'Frame', 'Order']).size().reset_index(name='Duplicates')

虽然这确实给了我一个重复的计数,但它给了我所有的计数,而不仅仅是重复。有没有一种优雅的方法可以做到这一点?还是我必须创建一个,dataframe然后进行处理?

cs95

您需要使用进行初始过滤duplicated,然后才能对各列进行分组并计算size

c = ['IDField', 'Frame', 'Order']
df[df.duplicated(c)].groupby(c).size().reset_index(name='Duplicates')

   IDField  Frame  Order  Duplicates
0       20  10_01      0           1

c = ['IDField', 'Order']
df[df.duplicated(c)].groupby(c).size().reset_index(name='Duplicates')

   IDField  Order  Duplicates
0       20      0           1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章