我有一个包含 Latitude、Longitude、summedDistance 和 runningDistance 列的数据框。
我使用了下面的代码并且它有效:
summedDistance = 0
for i in range(0, len(dfLatLong)-1):
fromLocation = (dfLatLong.loc[i, "Latitude"], dfLatLong.loc[i, "Longitude"])
toLocation = (dfLatLong.loc[i+1, "Latitude"], dfLatLong.loc[i+1, "Longitude"])
summedDistance += Helper.fromtoDistance(fromLocation, toLocation)
dfLatLong.loc[i, 'runingDistance'] = Helper.fromtoDistance(fromLocation, toLocation)
dfLatLong.loc[i, 'summedDistance'] = summedDistance
(Helper 函数使用纬度和经度的连续行之间的测地距离)
有没有办法使用 map 或 apply 来消除 For 循环?
谢谢
答案 0 :(得分:0)
使用 from_lat 、 from_long 而不是将 I 合并到单个列。你需要从 1:n-1 中取出纬度列,并在最后添加一个空值,并一次性将其分配给 to_lat 列。
一旦所有数据都对齐后,您就可以使用 apply 函数了。