标签: python pandas dataframe group-by pandas-groupby
我有一个优秀的人
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
答案 0 :(得分:1)
将groupby与transform和"nunique"一起使用,并在X中过滤出具有1个以上唯一值的组:
groupby
transform
"nunique"
df[df.groupby('Y').X.transform('nunique') == 1] Name X Y 1 B 5 10 4 E 5 10 5 F 5 8
相似的解决方案,使用map广播结果:
map
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