如何检查重复的组并将其删除?这是我的数据框:
Group Value_1 Value_2
A 17 0.1
A 20 0.8
A 22 0.9
A 24 0.13
B 17 0.1
B 20 0.8
B 22 0.9
B 24 0.13
C 17 0.1
C 20 0.8
C 22 0.9
C 26 0.11
在此数据帧组中,A和B是重复的,而C并不是因为其第四个元素不同,因此唯一性更高而不重复的深度更大,结果数据帧应如下所示:
Group Value_1 Value_2
A 17 0.1
A 20 0.8
A 22 0.9
A 24 0.13
C 17 0.1
C 20 0.8
C 22 0.9
C 26 0.11
我尝试对分组进行分组并检查重复项,但这将在观察级别上检查值。如何在组级别检查重复项?
答案 0 :(得分:1)
您可以使用groupby
并通过agg
与flatMap
进行聚合,然后通过drop_duplicates
删除重复项(默认情况下所有列均如此)并获取索引-所有组名:
frozenset
或使用cumcount
和set_index
通过unstack
重塑为:
idx = df.groupby('Group').agg(frozenset).drop_duplicates().index
#alternative solution
idx = df.groupby('Group').agg(tuple).drop_duplicates().index
通过boolean indexing
和isin
进行最后过滤:
g = df.groupby('Group').cumcount()
idx = df.set_index(['Group',g]).unstack().drop_duplicates().index