Python 删除前一组中存在的行
我有一个GroupBy对象。如果前一个组中存在同一行,我想从当前组中删除行。假设这是第n-1组:Python 删除前一组中存在的行,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个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 编辑: 如果可能的话,我想不使用循环来实现它我在这里使用带指示器的合并 因为它是按对象划分的,
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
编辑:
如果可能的话,我想不使用循环来实现它我在这里使用带指示器的合并
因为它是按对象划分的,所以您可以在这里使用for循环,使用上述代码n次我在这里使用merge with indicator
由于它是GrouBy对象,所以您可以在此处使用for循环,使用上述代码n次是否有无循环实现的方法?@DeveScie是的,它将需要for循环,但for循环并不总是坏的做法:-是否有无循环实现的方法?@DeveScie是的,它将需要for循环,但for循环并不总是坏的做法:-
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)