【问题标题】:Remove rows if it exists in the previous group如果前一组中存在,则删除行
【发布时间】:2019-03-28 01:10:16
【问题描述】:

我有一个 GroupBy 对象。如果前一组中存在同一行,我想从当前组中删除行。假设这是第 (n-1) 组:

    A   B
0   foo 0
1   baz 1
2   foo 1
3   bar 1

还有这个第n组

    A   B
0   foo 2
1   foo 1
2   baz 1
3   baz 3

删除所有重复项后。第n组结果:

    A   B
0   foo 2
3   baz 3

编辑:

如果可能的话,我想在没有循环的情况下实现它

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    我在这里使用mergeindicator

    yourdf=dfn.merge(df1,indicator=True,how='left').loc[lambda x : x['_merge']!='both']
    yourdf
         A  B     _merge
    0  foo  2  left_only
    3  baz  3  left_only
    #yourdf.drop('_merge',1,inplace=True)
    

    因为它是GrouBy Object,所以你可以在这里使用for循环,使用上面的代码n次

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多