假设我有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
20
中Frame
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
然后进行处理?
您需要使用进行初始过滤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] 删除。
我来说两句