How do I use Geopy to get zip code from coordinates for a big dataframe

Viewed 219

I have a dataframe of about 750,000 rows. I have longitude and latitude in 2 different columns. I want to use geopy to get the zip code for each row. My current code keeps running for an hour, no end in sight so far. Is there a way to do this faster?

def get_zipcode(df, geolocator, latitude_column, longitude_column):
    location = geolocator.reverse((df[latitude_column], df[longitude_column]))
    return location.raw['address']['postcode']
geolocator = geopy.Nominatim(user_agent='dsir group project')
from geopy.extra.rate_limiter import RateLimiter
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)

df.apply(get_zipcode, axis=1, geolocator=geolocator, lat_column='latitude', long_column='longitude')
0 Answers
Related