如何在Python中查找数据框组列中的重复值?

3

首先,我有一个数据框(df),当我根据其中一列分组时,是否会删除重复值?第二个问题是,如何知道哪些分组中有重复的值(我尝试找出如何知道数据框中哪些列有重复值,但找不到任何信息,它们只是讨论每个元素是否重复)。

ex i have a df like this:
     A    B   C
1    1    2   3
2    1    4   3
3    2    2   2
4    2    3   4
5    2    2   3

after groupby('A')

A    B       C
1    2       3
     4       3
2    2       2
     3       2
     2       3


我想知道有多少组A有B重复,以及有多少组A有C重复。
result:
   B    C
1  1    2

or maybe better can caculate percent

B : 50%
C : 100%

谢谢

2个回答

3
你可以在 GroupBy.agg 中使用lambda函数来比较一组中独特值的数量是否等于该组中所有元素的数量。使用Series.nunique获取唯一值的数量,使用Series.size获取该组中所有元素的数量。
df.groupby(level=0).agg(lambda x: x.size!=x.nunique())

#        B      C
# 1  False   True
# 2   True  False

2

让我们尝试一下

out = df.groupby(level=0).agg(lambda x : x.duplicated().any())
       B      C
1  False   True
2   True  False

谢谢您先生,首先我想问一下 level=0 是什么意思?然后它似乎在处理我的数据时运行缓慢(191600 行和 300 列如果我将它们分组)。其次,我已经编辑了我的问题,您能帮我吗? - robocon20x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接