Liz M.
Liz M.

Reputation: 25

For loops through pandas dataframes for latitude and longitude

So I have a dataframe with two columns cities and counties that has some cities from Maryland USA. I am trying to loop through to get the latitude and longitude coordinates for each city using the following code:

from geopy.geocoders import Nominatim
latitude=[]
longitude=[]
for city in df["City"]:

    address = city + ', MD'

    geolocator = Nominatim(user_agent="tor_explorer")
    location = geolocator.geocode(address)
    latitude = location.latitude
    longitude = location.longitude
df['latitude']=latitude
df['longitude']=longitude

But when I print latitude or longitude there's only one value in the list so when I put it into the dataframe it just repeats the same latitude and longitude for every city.

Upvotes: 1

Views: 1307

Answers (1)

MrNobody33
MrNobody33

Reputation: 6483

You are assigning the last value the for loop takes, so try to append each value of the for loop:

latitude=[]
longitude=[]
for city in df["City"]:

    address = city + ', MD'

    geolocator = Nominatim(user_agent="tor_explorer")
    location = geolocator.geocode(address)
    latitude.append(location.latitude)
    longitude.append(location.longitude)
df['latitude']=latitude
df['longitude']=longitude

Upvotes: 1

Related Questions