Home > Mobile >  calculate distance between latitude longitude columns for pandas data frame
calculate distance between latitude longitude columns for pandas data frame

Time:03-29

I am trying to apply this code:

import h3

coords_1 = (52.2296756, 21.0122287)
coords_2 = (52.406374, 16.9251681)
distance = h3.point_dist(coords_1, coords_2, unit='km')
distance

to a pandas dataframe. This is my not working attempt.

data = {'lat1':[52.2296756],
        'long1':[21.0122287],
        'lat2':[52.406374],
        'long2':[16.9251681],      
}
df = pd.DataFrame(data)
df

df['distance'] = = h3.point_dist((df['lat1'], df['long1']), (df['lat2'], df['long2']), unit='km')

Any help would be very much appreciated. Thanks!

CodePudding user response:

Assuming you have more than a single row for which you would like to compute the distance you can use apply as follows:

df['Dist'] = df.apply(lambda row: h3.point_dist((row['lat1'], row['long1']), (row['lat2'], row['long2'])), axis=1)

Which will add a column to your dataframe simi9lar to the following:

      lat1        long1      lat2       long2        Dist
0   52.229676   21.012229   52.406374   16.925168   2.796556
1   57.229676   30.001176   48.421365   17.256314   6.565542 

Please note, my distance calculations may not agree with yours, since I used a dummy function for h3.point_dist computation

CodePudding user response:

It's working you need to just delete the second "="

data = {'lat1':[52.2296756],
        'long1':[21.0122287],
        'lat2':[52.406374],
        'long2':[16.9251681],      
}
df = pd.DataFrame(data)
df

df['distance'] =  h3.point_dist((df['lat1'], df['long1']), (df['lat2'], df['long2']), unit='km')

result

  • Related