【问题标题】:Dataframe substitution of For loopFor循环的数据框替换
【发布时间】:2021-07-08 02:50:36
【问题描述】:

我有一个包含 Latitude、Longitude、summedDistance 和 runingDistance 列的数据框。

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

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 循环?

谢谢

【问题讨论】:

  • 试试 numpy.select()

标签: python dataframe dictionary apply


【解决方案1】:

使用 from_lat , from_long 而不是将 I 合并到单个列。需要从 1:n-1 中取出纬度列,在末尾添加一个空值,一次性赋值给 to_lat 列。

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

【讨论】:

  • 谢谢塔里克。这是一种方法。我会尝试并在此处发布代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 2011-09-22
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多