(IPython笔记本) (公交统计)
在摘要.head()
我需要计算出每两排之间行驶的距离,在哪里 1) 行['sequence']!=0,因为当公共汽车在他的起始站时没有距离2)行['track_id']==上一行['track_id']。在
我已经定义了:
def haversine(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
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 # Radius of earth in kilometers. Use 3956 for miles
return c * r
我不太清楚该怎么办。其中一个想法是,如果行的“sequence”参数不为0,并且行的“track_id”等于前一行的“track_id”,则使用itterrows()和apply harvesine()函数
[编辑]我认为没有必要检查行和上一行的“track_id”是否相同,因为haversine()函数只应用于两行,当sequence=0时,该行的距离==0,这意味着track_id已经更改。所以,基本上,将haversine()函数应用于其“sequence”的所有行!=0,即haversine(上一个_世界其他地区液化天然气,上一个_row.lat.行,当前_世界其他地区液化天然气,当前_row.lat.行). 但仍需要帮助
[编辑2] 我成功地实现了类似的目标:
^{pr2}$其中previous_row实际上应该是previous_row,因为现在它只是一个占位符字符串,不起任何作用。在
你可以试试:
相关问题 更多 >
编程相关推荐