小双双双� 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
    关注

    你不泄密?

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面