用pand在python上实现反向编码

2024-05-18 09:09:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 文件数据方法代码区域dflistreverse
1条回答
网友
1楼 · 发布于 2024-05-18 09:09:40

基于reverse_geocoderGitHub存储库中的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的前几行。例如,要在数据帧的前1000行上运行上述代码,请将第一行更改为:

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

相关问题 更多 >