Основываясь на демонстрационной записной книжке PyData 2015 в репозитории reverse_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
. Например, чтобы запустить приведенный выше код в первых 1000 строках DataFrame, измените первую строку следующим образом:
coords = tuple(zip(df['pickup_latitude'].iloc[:1000],
df['pickup_longitude'].iloc[:1000]))