gpt4 book ai didi

python - 如何检查组级别的重复?

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:42 25 4
gpt4 key购买 nike

如何检查重复的组并删除它们?这是我的数据框:

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

我尝试分组并检查重复项,但这将检查观察级别的值。如何检查组级别的重复?

最佳答案

您可以使用 groupby并按 agg 聚合使用 frozenset,然后通过 drop_duplicates 删除重复项(默认情况下所有列)并获取索引 - 所有组名称:

idx = df.groupby('Group').agg(frozenset).drop_duplicates().index
#alternative solution
idx = df.groupby('Group').agg(tuple).drop_duplicates().index

或 reshape 为 cumcountset_indexunstack :

g = df.groupby('Group').cumcount()
idx = df.set_index(['Group',g]).unstack().drop_duplicates().index

最后过滤条件 boolean indexingisin :

df = df[df['Group'].isin(idx)]
print (df)
Group Value_1 Value_2
0 A 17 0.10
1 A 20 0.80
2 A 22 0.90
3 A 24 0.13
8 C 17 0.10
9 C 20 0.80
10 C 22 0.90
11 C 26 0.11

关于python - 如何检查组级别的重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com