将 geohash_decode 函数应用于数据框中的列

Applying a geohash_decode function to a column in a dataframe

好吧,我geohash_encoded地理坐标到geohashes。我的目标是以一定的精度计算距离。我正在尝试 geohash_decode 将 geohashes 返回到地理坐标,但我未能想出一个可以对数据框中的列执行此操作的函数

假设:

  • 您问的是 Python(如果这是 R、Scala 或其他数据框问题,但您没有指定,我们深表歉意)
  • 你有一个 Python pandas DataFrame 对象 df
  • df 有一个名为 geohash 的列,其中包含您的 geohashes
  • 您安装并导入了 geohash2 库(这可能适用于其他 Geohash 库...)
  • 您想用包含所有旧数据以及新的 latitudelongitude 列的新 DataFrame 覆盖 df

以下应该有效:

def gh_decode(hash):
    lat, lon = geohash2.decode(hash)
    return pd.Series({"latitude":lat, "longitude":lon})

df = df.join(df["geohash"].apply(gh_decode))