我有一个与此类似的数据框
我正在尝试创建一个新列,其中详细说明了GUID是否匹配以及'DL','DRI','DS'列是否匹配。因此,从上面的图像中,新列将表明该数据是匹配的。
我已经尝试过:
cols = {['DL','DRI','DS']}
df['match'] = df[cols].eq(df.col1.shift())
但是却收到“ TypeError:无法散列的类型:'list”
答案 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