【问题标题】:Duplicate values pandas [closed]重复值熊猫[关闭]
【发布时间】:2020-01-19 09:41:02
【问题描述】:

我是熊猫新手。 我一直在尝试解决这里的一个问题

This is the problem statement where I want to drop any row where I have a duplicate A but non duplicate B

这是我想要的那种输出

enter image description here

【问题讨论】:

    标签: pandas pandas-groupby pandasql pandas-apply pandas-profiling


    【解决方案1】:

    IIUC,这就是你需要的

    a = (df['A'].ne(df['A'].shift())).ne((df['B'].ne(df['B'].shift())))
    df[~a].reset_index(drop=True)
    

    输出

        A   B
    0   2   z
    1   3   x
    2   3   x
    

    【讨论】:

    • 这不是预期的输出
    • @Krishan,你能澄清一下吗?根据您的描述,我的代码保留了第一行,但是,您的图片似乎保留了第二行。你能澄清一下哪个是正确的吗?
    【解决方案2】:

    我认为你需要:

    cond=(df.eq(df.shift(-1))|df.eq(df.shift())).all(axis=1)
    pd.concat([df[~cond].groupby('A').last().reset_index(),df[cond]])
    
        A   B
    0   2   y
    2   3   x
    3   3   x
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-20
      • 2019-07-12
      • 2021-04-15
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 2014-05-25
      相关资源
      最近更新 更多