将 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 库...)
- 您想用包含所有旧数据以及新的
latitude
和 longitude
列的新 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))
好吧,我geohash_encoded地理坐标到geohashes。我的目标是以一定的精度计算距离。我正在尝试 geohash_decode 将 geohashes 返回到地理坐标,但我未能想出一个可以对数据框中的列执行此操作的函数
假设:
- 您问的是 Python(如果这是 R、Scala 或其他数据框问题,但您没有指定,我们深表歉意)
- 你有一个 Python pandas DataFrame 对象
df
df
有一个名为geohash
的列,其中包含您的 geohashes- 您安装并导入了
geohash2
库(这可能适用于其他 Geohash 库...) - 您想用包含所有旧数据以及新的
latitude
和longitude
列的新 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))