Python 删除另一列中具有多个唯一值的组

Python 删除另一列中具有多个唯一值的组,python,pandas,dataframe,group-by,pandas-groupby,Python,Pandas,Dataframe,Group By,Pandas Groupby,我有一个类似excel的 Name X Y A 5 9 B 5 10 C 7 9 D 7 9 E 5 10 F 5 8 我想删除Y列中有重复值但X列中有不同值的行。换句话说,如果一个Y值对应多个X值,则删除所有这些行 结果应该是: Name X Y B 5 10 E 5 10 F 5 8 与和nunique一起使用,并筛选出X中具

我有一个类似excel的

Name   X    Y
A      5    9
B      5    10
C      7    9
D      7    9
E      5    10
F      5    8
我想删除Y列中有重复值但X列中有不同值的行。换句话说,如果一个Y值对应多个X值,则删除所有这些行 结果应该是:

Name   X    Y
B      5    10
E      5    10
F      5    8
与和nunique一起使用,并筛选出X中具有1个以上唯一值的组:

df[df.groupby('Y').X.transform('nunique') == 1]

  Name  X   Y
1    B  5  10
4    E  5  10
5    F  5   8
类似的解决方案,用于广播结果:

df[df.Y.map(df.groupby('Y').X.nunique()) == 1]

  Name  X   Y
1    B  5  10
4    E  5  10
5    F  5   8

谢谢!这件事已经纠缠了好几个小时了。@AmanGarg不客气。下一次,我建议你也加入你在OP中尝试过的内容,以避免潜在的被否决的秃鹫。