使用select,inner join,group by和python语言在哪里转换查询

时间:2019-12-05 10:15:34

标签: python sql pandas dataframe

我有一个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

有人对有效的方法有任何想法吗?非常感谢您的帮助,谢谢!

0 个答案:

没有答案