假设我有一个 groupby 对象(在 Col1 上分组),如下所示:
Col1 Col2 Col3 Col4 Col5
----------------------------------------
AAA 001 456 846 239 row1
002 374 238 904 row2
003 456 846 239 row3
BBB 001 923 222 398 row1
002 923 222 398 row2
003 755 656 949 row3
CCC 001 324 454 565 row1
002 744 345 336 row2
003 567 355 756 row3
有没有办法根据每个组内的 [Col3, Col4, Col5] 检查重复行。在上面的示例中,对于组 AAA,第 1 行和第 3 行匹配,因为 Col3、Col4、Col5 值相同。再次在 BBB 组中,第 1 行和第 2 行匹配。在 CCC 组中,使用上述逻辑,我们没有任何重复的行。
我们可以创建一个包含“n”个布尔元素的列表(其中“n”代表组的数量),如果该组有任何重复项,则用 True 填充它,否则为 False。因此,对于上面的示例输出将是:
[True, True, False]
您可以尝试groupby
列Col1
,然后用于duplicated()
检查是否有任何重复的 from Col3
toCol5
out = (df.groupby('Col1')
.apply(lambda g: g[['Col3','Col4','Col5']].duplicated().any())
.tolist())
print(out)
[True, True, False]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句