我对python还比较陌生,所以如果我问的问题太蠢,我很抱歉
我有一个CSV文件,有以下列:“CarNumber”,“DateTime”,“GPS”,“Speed”。 GPS列包含以下形式的信息:“纬度:经度”
我想:
1)加载CSV文件
2)将GPS列拆分为经纬度列
3)利用哈弗斯公式计算已知经纬度两点之间的距离。到目前为止,我提出了以下函数:
def distRad(glat1, glng1, glat2, glng2):
from math import sin, cos, sqrt, atan2, radians, asin
# approximate radius of earth in km
R = 6371.0
lat1 = radians(glat1)
lng1 = radians(glng1)
lat2 = radians(glat2)
lng2 = radians(glng2)
dlng = lng2 - lng1
dlat = lat2 - lat1
#a = 2 * asin((sin(dlng/2)**2+cos(lng1)*cos(lng2)*sin(dlat/2)**2)**0.5)
#c = a
a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlng / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
return R * c
4)将结果上载到新的csv文件,其中列为:“CarNumber”、“DateTime”、“Latitude”、“Longitude”、“Distance” 我知道这听起来很简单,但我仍然需要指导
我的CSV文件的一部分:
CarNumber;DateTime;GPS;Speed
230;04.06.2019 0:00:12;87,96978 : 159,588606;20
谢谢你!你知道吗
将csv加载到数据帧-
数据框=pd.read\U csv文件('数据.csv“,分隔符=”,“)
假设lat和long之间有:
df[lat],df['long']=df['GPS']。结构拆分(':',1).str
使用python中的haversine包应用haversine公式
从haversine进口haversine
你知道吗数据框到\u csv('检查.csv“,sep=”,“,encoding='utf-8')
请注意,这些只是指针,我没有测试代码,但这应该让你开始。你知道吗
编辑:
要遍历数据集,可以执行以下操作
我只建议使用pandas库并使用read-csv()函数。你知道吗
此处计算
相关问题 更多 >
编程相关推荐