如何组或排序熊猫DataFrame,其中两个唯一的id具有相同的值?



如果我有像这样的。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

表示IDs在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)]

最新更新