HTML-страница пуста после использования фолио для создания карты

Мне было интересно, сможет ли кто-нибудь помочь мне исправить мой код Python / HTML. Я пытаюсь нанести на карту местоположения вулканов возле озера Шаста, используя библиотеку folium в Python и pandas, чтобы заархивировать столбцы широты, долготы, имени и высоты из файла CSV. Файл CSV отформатирован правильно, так как я могу получить доступ к данным (например, рассчитать средние). Хотя мне удалось создать фрейм данных, моя распечатка HTML-кода не дает желаемой карты. Я использую Chrome, чтобы открыть файл. Ниже приведен код. Любая помощь в решении проблемы будет принята с благодарностью! Заранее спасибо!

Кайл

import folium
import pandas as pd

df = pd.read_csv('Volcanoes_USA.csv')
latmean = df['LAT'].mean()
lonmean = df['LON'].mean()

map = folium.Map(location = [latmean, lonmean], zoom_start = 5, tiles = 'Stamen Terrain')

def color(ELEV):
    if ELEV in range(0, 1000):
        col = 'green'
    elif ELEV in range (1001,1999):
        col = 'blue' 
    elif ELEV in range(2000,2999):
        col = 'orange'
    else:
        col = 'red'

for LAT,LON,NAME,ELEV in zip(df['LAT'], df['LON'], df['NAME'], df['ELEV']):
    folium.Marker(location=[LAT, LON], popup = NAME, icon = folium.Icon(color = color(ELEV), icon = 'cloud')).add_to(map)

print(map.save("test6.html"))

person Kyle Kulinski    schedule 17.09.2017    source источник
comment
Все в порядке, кроме функции color(). Он никогда не возвращает значение, например col. Это может быть проблемой   -  person Bob Haffner    schedule 18.09.2017
comment
Спасибо вам за помощь! Я понял, что folium обновила свои html-распечатки в версиях 0.4.0 и 0.5.0. Любые символы 'в тексте фрейма данных вызовут синтаксическую ошибку, поэтому требуется обходной путь. Я не уверен, как это сделать, так как проблема связана с HTML-кодом. В качестве временного решения я заменил все символы 'во фрейме данных подчеркиванием, пока не будет найдено обходное решение. Любая помощь по этому поводу будет оценена.   -  person Kyle Kulinski    schedule 19.09.2017
comment
Хорошо, интересно, нужно ли вам что-то избегать одинарных кавычек?   -  person Bob Haffner    schedule 19.09.2017
comment
Я понял! По какой-то причине HTML-файл не может прочитать что-либо с апострофами в имени (например, Hell's, Bell's и т. Д.). Я просмотрел данные и поменял их на подчеркивания, и программа заработала. Я предполагаю, что в старом фолиуме был обходной путь для апострофа, но теперь он читается как закрывающая скобка или что-то в этом роде, отбрасывая синтаксис. Ожидание ответа от команды folium о том, как это исправить.   -  person Kyle Kulinski    schedule 21.09.2017
comment
также я добавил обратный столбец   -  person Kyle Kulinski    schedule 21.09.2017
comment
У кого-то есть похожий проблема. Попробуйте df['NAME'] = df['NAME'].str.replace("'", "'") Это позволит отображать апострофы.   -  person Bob Haffner    schedule 23.09.2017


Ответы (1)


Если в строке есть кавычки ('), вы получите пустую страницу.

Вам необходимо внести следующие изменения:

popup=folium.Popup(df['NAME'],parse_html=True))
person Tokaalmighty    schedule 04.02.2018