import pandas as pd from geopy.geocoders import Nominatim import folium #Load dataset data = pd.read_excel("data.xlsx") geolocator = Nominatim(user_agent="my_geocoder") def geocode_address(row): location = geolocator.geocode(f"{row['City']}, {row['State_or_Province']}, {row['Country']}") if location: return location.latitude, location.longitude else: return None, None data['Latitude'], data['Longitude'] = zip(*data.apply(geocode_address, axis=1)) #Calculate mean of coordinates for map center map_center = [data['Latitude'].mean(), data['Longitude'].mean()] #make map with folium mymap = folium.Map(location=map_center, zoom_start=4) #adjust as needed #Add markers for index, row in data.iterrows(): if row['Latitude'] and row['Longitude']: folium.Marker([row['Latitude'], row['Longitude']], popup=row['City']).add_to(mymap) #Save mymap.save("geocoded_map.html")