Python 将两列中的坐标合并为一列
我试图得到A点到B点的距离,但是坐标被分成4列Python 将两列中的坐标合并为一列,python,pandas,Python,Pandas,我试图得到A点到B点的距离,但是坐标被分成4列 Point_a_lat Point_a-long Point_b_lat Point_B_long ----------------------------------------------------- 40.744607 -73.990742 40.752073 -73.985370 由于Geopy.distance无法计算坐标分散成四列的距离,因此我的最佳猜测是简单地将点a的lat和lon以及点b组合起来 我以为这
Point_a_lat Point_a-long Point_b_lat Point_B_long
-----------------------------------------------------
40.744607 -73.990742 40.752073 -73.985370
由于Geopy.distance无法计算坐标分散成四列的距离,因此我的最佳猜测是简单地将点a的lat和lon以及点b组合起来
我以为这样会容易些,但我有麻烦了
我试着把它们列成一个清单
df['point_a'] = list(zip(df.Point_a_lat, df.Point_a_lon))
df['point_b'] = list(zip(df.Point_b_lat, df.Point_b_lon))
但它不会接受这一点
有什么想法吗?我想需要调用函数
vincenty
by,使用axis=1
为每行进程:
from geopy.distance import vincenty
df['distance'] = df.apply(lambda x: vincenty((x['Point_a_lat'], x['Point_a_lon']),
(x['Point_b_lat'], x['Point_b_lon'])).m, axis=1)
print (df)
Point_a_lat Point_a_lon Point_b_lat Point_b_lon distance
0 40.744607 -73.990742 40.752073 -73.98537 945.107136
到目前为止你都试了些什么?我想是被切断了。让我编辑一下。