如果我有像这样的。csv
ID Value1 Value2
id1 yes 2
id2 no 2
id3 no 1
id2 no no
id4 yes no
id1 yes no
所以我想过滤并只显示两个(或更多)具有相同值的唯一id。
ID Value1 Value2
id1 yes 2
id2 no 2
id2 no no
id4 yes no
id1 yes no
表示ID
s在Value2
中有不止一个相同的值。可以吗?
使用DataFrame.duplicated
-首先删除每两列的重复,然后仅过滤一列的重复Value2
:
df = df[~df.duplicated(['ID','Value2'])]
df = df[df.duplicated('Value2', keep=False)]
print (df)
ID Value1 Value2
0 id1 yes 2
1 id2 no 2
3 id2 no no
4 id4 yes no
5 id1 yes no
另一个类似的想法:
df = df.drop_duplicates(['ID','Value2'])
df = df[df.duplicated('Value2', keep=False)]