python - python 和 panda 上的反向地理编码器

标签 python pandas jupyter-notebook reverse-geocoding

我目前正在使用此代码来浏览文件并获取分区,但是由于我有 118185 行数据需要浏览,因此需要很长时间才能执行。 是否有另一种方法可以使用 reverse_geocoder 且不需要那么长时间

df["coord"]=list(zip(df["pickup_latitude"],df["pickup_longitude"]))
list1 = []
for x,y in df["coord"]: 
    coordinates=(x,y)
    newItem = rg.search(coordinates)[0].get('admin2')
    list1.append(newItem)

最佳答案

基于PyData 2015 demo notebookreverse_geocoder GitHub 存储库中,您可以将元组的元组传递到 rg.search() 中以一次处理多个坐标对。

# Convert lat and long columns to a tuple of tuples
coords = tuple(zip(df['pickup_latitude'], df['pickup_longitude']))

results_rg = rg.search(coords)
results_admin2 = [x.get('admin2') for x in results_rg]

# Optional: insert admin2 results into new df column
df['admin2'] = results_admin2

如果这仍然太慢,您可以仅使用 df 的前几行来尝试简单的速度测试。例如,要在 DataFrame 的前 1000 行上运行上述代码,请将第一行更改为:

coords = tuple(zip(df['pickup_latitude'].iloc[:1000], 
                   df['pickup_longitude'].iloc[:1000]))

关于python - python 和 panda 上的反向地理编码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55088278/

相关文章:

python 绘制特征向量

python - False 不应被视为 0

python - 使用pandas包在python中合并多个excel文件的数据

python - 比较 Pandas Dataframe 中共享列值的行组

python - Pandas 数据框 - 使用一条记录创建数据框

r - 无法在 Jupyter 笔记本中加载 IRKernel

python - 无法同时运行多个 SparkContext

python - 在 vscode/jupyter 中调试外部模块代码

python - 如何处理未处理的异常?

python - 仅当满足条件时才增加 for 循环中的索引