小双双双� 2019-11-21 23:44 采纳率: 0%
浏览 687

用Python计算整个表格中上下两行经纬度距离?

图片说明

如何在表格添加一列距离 表示上下两行经纬度距离?
这是我的代码

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)
不知道哪里错误了 请指正,想输出的表格直接在最后是有距离的
  • 写回答

1条回答 默认 最新

  • ? Luning? 2022-03-24 22:39
    关注

    你不泄密?

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试