检查组是否在Pandas中包含相同的值

时间:2019-02-04 14:40:18

标签: python pandas dataframe grouping

我很好奇Pandas中是否有一个预先构建的函数来检查组中的所有成员(一列中的因子)在另一列中是否包含相同的值。

即如果我的数据框与下面的数据框相似,则会返回一个空列表。

Col1    Col2
2        A
2        A
0        B
0        B

但是,如果我的数据框是这样显示的(请注意Col1中的1 ):

Col1    Col2
2        A
2        A
0        B
1        B 

然后,由于组B在Col1中具有不同的值,因此输出将是包含对象“ B”的列表。

2 个答案:

答案 0 :(得分:4)

使用groupby nunique和唯一值索引> 1

a = df.groupby('Col2').Col1.nunique() > 1
a[a].index.tolist()

输出:

['B']

答案 1 :(得分:2)

DataFrame.duplicated用作布尔掩码,并将列Col2转换为list

a = df.loc[~df.duplicated(keep=False), 'Col2'].unique().tolist()
print (a)
[]

第二个数据:

a = df.loc[~df.duplicated(keep=False), 'Col2'].unique().tolist()
print (a)
['B']

替代DataFrame.drop_duplicates

a = df.drop_duplicates(keep=False)['Col2'].unique().tolist()
print (a)
['B']
相关问题