Pandas如何提取指定列所有重复值对应的行且不丢弃任何匹配项
你可以通过指定duplicated()方法的keep参数为False实现需求,该参数设置为False时,所有重复出现的值对应的行都会被标记为True,不会排除首次出现的重复值。
实现代码如下:
# 筛选A列有重复的全部行 df2 = df1[df1.duplicated(subset='A', keep=False)]
如果需要和你给出的示例一致的连续索引,可以追加重置索引的操作:
df2 = df1[df1.duplicated(subset='A', keep=False)].reset_index(drop=True)
参数说明:
subset='A':指定仅按照A列判断重复,若需按多列判断重复,传入列名列表即可,例如subset=['A','B']keep参数默认值为'first',即排除首次出现的重复行,也就是你之前遇到的情况;设置为'last'则会排除最后一次出现的重复行;设置为False则所有重复值对应的行都会被选中。
内容的提问来源于stack exchange,提问作者Jagadeeshkumar Viswanathan
相关产品推荐
相关产品推荐

