热线电话:13121318867

登录
2019-01-25 阅读量: 735
根据条件删除多行

下面是pandas dataframe我的一个子集,我试图根据某些条件删除多行。

code1 code2 grp1 grp2 dist_km

0 M001 M002 AAA AAA 112

1 M001 M003 AAA IHH 275

2 M002 M005 AAA XXY 150

3 M002 M004 AAA AAA 65

4 M003 M443 IHH GRR 50

5 M003 M667 IHH IHH 647

6 M003 M664 IHH FFG 336

所以我只想保持行的位置grp1与grp2每个行的相同,code1但只有dist_km那个特定的最小值code1。

对于上面的示例,仅保留以下行:

code1 code2 grp1 grp2 dist_km

0 M001 M002 AAA AAA 112

3 M002 M004 AAA AAA 65

最简单的方法是什么?

我目前有一个解决办法

用两个条件

df.loc[(df['dist_km'] == df.groupby('code1')['dist_km'].transform('min')) & (df['grp1'] == df['grp2'])]

code1 code2 grp1 grp2 dist_km

0 M001 M002 AAA AAA 112

3 M002 M004 AAA AAA 65

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子