我有一个类似的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
Use groupby https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html with transform https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.transform.html and "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
类似的解决方案,使用map https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.map.html广播结果:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)