检查数据框中某些列中的重复值

时间:2019-11-29 06:23:47

标签: python pandas

我有一个与此类似的数据框

enter image description here

我正在尝试创建一个新列,其中详细说明了GUID是否匹配以及'DL','DRI','DS'列是否匹配。因此,从上面的图像中,新列将表明该数据是匹配的。

我已经尝试过:

cols = {['DL','DRI','DS']}
df['match'] = df[cols].eq(df.col1.shift())

但是却收到“ TypeError:无法散列的类型:'list”

2 个答案:

答案 0 :(得分:1)

  

cols = {['DL','DRI','DS']}

格式错误,应该为:

cols = [['DL','DRI','DS']] 

答案 1 :(得分:1)

也许这就是您想要的。也许您应该重新表述您的问题,因为尚不清楚您真正想要的是什么。

df = pd.DataFrame({'GUID':['00059','00059','123'], 'DL':['','','123'], 'DRI':[True,True,True], 'DS':['','','123'], 'Model':['asd','qwe','123']})
df

    GUID   DL   DRI   DS Model
0  00059       True        asd
1  00059       True        qwe
2    123  123  True  123   123

df['match'] = df.duplicated(['GUID', 'DL', 'DRI', 'DS'], keep=False)
df

    GUID   DL   DRI   DS Model  match
0  00059       True        asd   True
1  00059       True        qwe   True
2    123  123  True  123   123  False