【问题标题】:Remove groups with more than one unique value in another column删除另一列中具有多个唯一值的组
【发布时间】:2019-05-30 21:57:04
【问题描述】:

我有一个类似的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

【问题讨论】:

    标签: python pandas dataframe group-by pandas-groupby


    【解决方案1】:

    groupbytransform"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广播结果:

    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 中尝试过的内容,以避免潜在的否决秃鹰。
    猜你喜欢
    • 1970-01-01
    • 2022-10-09
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多