Python 删除另一列中具有多个唯一值的组
我有一个类似excel的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中具
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中尝试过的内容,以避免潜在的被否决的秃鹫。