我目前正在使用此代码来遍历文件并获取分区,但是由于我有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)

最佳答案

基于reverse_geocoder GitHub存储库中的PyData 2015 demo notebook,您可以将一个元组的元组传递到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 - 带 Pandas 的python上的reverse_geocoder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55088278/

10-10 23:46