Как я могу l oop через фрейм данных для создания отдельных карт Folium? - PullRequest
1 голос
/ 25 января 2020

Я пытаюсь осмотреть места суши в 5 разных городах, используя foursqaure. Я могу получить данные и правильно их отфильтровать. Код ниже.

city = {'City':['Brunswick','Auckland','Wellington','Christchurch','Hamilton','Ponsonby'],
    'Latitude':[-37.7670,-36.848461,-41.28664,-43.55533,-37.78333,-36.8488],
    'Longitude':[144.9621,174.763336,174.77557,172.63333,175.28333,174.7381]}
df_location= pd.DataFrame(city, columns = ['City','Latitude','Longitude'])

def getNearbyVenues(names, latitudes, longitudes, radius=2000, LIMIT=100):
venues_list=[]
for name, lat, lng in zip(names, latitudes, longitudes):
    # create the API request URL
    url = 'https://api.foursquare.com/v2/venues/explore?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}&categoryId={}'.format(
        CLIENT_ID, 
        CLIENT_SECRET, 
        VERSION,
        lat,
        lng,
        radius,
        LIMIT,
        "4bf58dd8d48988d1d2941735")
    # make the GET request
    results = requests.get(url).json()["response"]['groups'][0]['items']
    venues_list.append([(
        name, 
        v['venue']['name'], 
        v['venue']['location']['lat'], 
        v['venue']['location']['lng']) for v in results])
nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
nearby_venues.columns = [
              'City',
              'Venue', 
              'Venue Latitude', 
              'Venue Longitude',]
return(nearby_venues)

sushi_venues = getNearbyVenues(names = df_location['City'],
                               latitudes = df_location['Latitude'],
                               longitudes = df_location['Longitude'])
cities = df_location["City"]
latitude = df_location["Latitude"]
longitude = df_location["Longitude"]

Я застрял при создании карт, и я не уверен, как мне следует перебирать города, чтобы создать карту для каждой. Вот мой код города в df_location, например,

maps = {}
   for city in cities:
   maps[city] = folium.Map(location = [latitude[0], longitude[0],zoom_start=10)

Затем «maps [towns [0]]» вызывает правильно помеченную карту Фолио Брауншвейга с отмеченными соответствующими местами. Итак, мой вопрос: как я могу правильно перебрать все 5 городов, чтобы я мог вытащить новую карту для каждого без изменения местоположения каждый раз? Я не могу заархивировать местоположения, потому что для инициализации карты Фолиума требуется один лат / длинный.

Большое спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...