reverse_geocoder 在 python 与熊猫
reverse_geocoder on python with panda
我目前正在使用此代码遍历一个文件并获取分区,但是它需要永远执行,因为我有 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]))
我目前正在使用此代码遍历一个文件并获取分区,但是它需要永远执行,因为我有 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]))