For循环的数据框替换

时间:2021-04-13 03:18:52

标签: python dataframe dictionary apply

我有一个包含 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 循环?

谢谢

1 个答案:

答案 0 :(得分:0)

使用 from_lat 、 from_long 而不是将 I 合并到单个列。你需要从 1:n-1 中取出纬度列,并在最后添加一个空值,并一次性将其分配给 to_lat 列。

一旦所有数据都对齐后,您就可以使用 apply 函数了。