python上的reverse_geocoder与熊猫

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python上的reverse_geocoder与熊猫相关的知识,希望对你有一定的参考价值。

我目前正在使用此代码通过一个文件并获取该区域,但是由于我有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 notebook GitHub存储库中的reverse_geocoder,您可以将元组元组传递到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上的reverse_geocoder与熊猫的主要内容,如果未能解决你的问题,请参考以下文章

PlatformIO与Atom上的Python 2冲突

Python串联与列表上的追加速度

Python - 内存中对象的大小与磁盘上的大小

如何通过 python 子进程与 mac 上的应用程序交互?

python | Linux的上的MongoDB的安装与卸载

Celery 在本地系统上的效率与 python 多处理一样吗?