Python For循环的数据帧替换

Python For循环的数据帧替换,python,dataframe,dictionary,apply,Python,Dataframe,Dictionary,Apply,我有一个包含纬度、经度、总距离和运行距离列的数据框 我使用了下面的代码,它可以工作: summedDistance = 0 for i in range(0, len(dfLatLong)-1): fromLocation = (dfLatLong.loc[i, "Latitude"], dfLatLong.loc[i, "Longitude"]) toLocation = (dfLatLong.loc[i+1, "Latitud

我有一个包含纬度、经度、总距离和运行距离列的数据框

我使用了下面的代码,它可以工作:

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
(辅助函数使用纬度和经度连续行之间的测地距离)

有没有办法使用map或apply来消除For循环


谢谢

使用from_lat,from_long,而不是将I合并到单个列中。您需要从1:n-1中选取纬度列,并在末尾添加一个null,然后一次性将其分配给to_lat列


所有数据对齐后,即可使用应用函数。

请尝试numpy.select(),谢谢Tarik。这是一条路要走。我会试试,然后把代码贴在这里。