我有一个3列的pandas数据框,如下所示:
fname name distance
fname1 name1 5
fname2 name2 8
fname1 name1 10
fname2 name4 3
fname2 name6 9
fname2 name2 19
我想创建一个具有不同fname和name且距离最小的新数据框;所以在这种情况下是:
fname name distance
fname1 name1 5
fname2 name2 8
fname2 name4 3
fname2 name6 9
在sql语言中,我猜是这样的:
Select assigned_subset.*
From
assigned_subset as asub
Inner Join
(select fname, name, MIN(distance) as mindist from assigned_subset group by fname, name) asub2
On asub.fname=asub2.fname and asub.name=asub2.name
Where asub2.mindist=asub.distance
有人对有效的方法有任何想法吗?非常感谢您的帮助,谢谢!