如何在表格添加一列距离 表示上下两行经纬度距离?
这是我的代码
import pandas as pd
import numpy as np
gps1=pd.read_csv('top_01.csv',sep=',')
truck1029943=gps1[gps1['user_id']=='1029943']
#按时间升序排列
truck11029943=truck1029943.sort_values(by='time', ascending=True)
#根据经纬度坐标计算直线距离
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 (十进制度数)
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # 将十进制度数转化为弧度
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
r = 6371 # 地球平均半径,单位为公里
return c * r * 1000
#list(map函数)
truck1029943.loc[truck1029943['latitude']>0,'distance']=list(map(haversine,
truck1029943['longitude'],
truck1029943['latitude'],
truck1029943['longitude'].shift(1),
truck1029943['latitude'].shift(1)));truck1029943
#pd.set_option('display.max_columns',1000)
print(truck1029943)
不知道哪里错误了 请指正,想输出的表格直接在最后是有距离的