Карта Python Folium не отображается при чтении определенного столбца из CSV? - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь создать карту Folium для внутренних маркетинговых целей моей компании. Карта загружается так, как есть. Однако, когда я хочу, чтобы во всплывающем тексте отображался определенный столбец, карта не загружается. Вот как выглядит код:

#read csv and create dataframe
df = pd.read_csv(sheet_url, delimiter=",", header=0, encoding='latin-1', engine='python') 
#turn dataframe from dict into a list
csv = [list(x) for x in df.values]
#organize data into array
locations = []
for location in csv:
    coords = [location[0], location[1]]
    try:
        locations.append({'company' : location[2], 'country' : location[3], 'products' : location[3], 'potential' : location[4], 'method' : location[13], 'note' : location[14], 'hover': f"{location[3]}<br>{location[2]}", 'click': f"<a href={location[9]}>Website</a><br>{location[13]}<br>{location[14]}", 'coordinates' : coords})
    except:
        print("failed because of some error")

Проблема возникает, когда я пытаюсь добавить location [14] во всплывающее окно, но оно не выдает ошибку здесь. Также не выдает ошибку при итерации для добавления маркеров на карту:

for x in locations:
    try:
        if x['potential'] == "Current Customer":
            folium.Marker(location = (x['coordinates']), popup = x['click'], tooltip = x['hover'], icon=folium.Icon(color='green')).add_to(current_cluster)
        else:
            folium.Marker(location = (x['coordinates']), popup = x['click'], tooltip = x['hover'], icon=folium.Icon(color='red')).add_to(potential_cluster)
    except:
        print("failed")

У меня возникли проблемы с колонкой «note».

Я уже пробовал:

  1. Использование ' '.join(map(str, location[14])) при циклическом просмотре CSV. Карта загружается, текст находится во всплывающем окне, но разделяется пробелами (L i k e t h i s).
  2. Изменение разделителя с , на что-либо еще, но это создает ошибку синтаксического анализатора. В каждой строке используется много разных символов, но я не уверен, что проблема в разделителе.
  3. В Chrome отладчик говорит: Uncaught SyntaxError: Octal escape sequences are not allowed in template strings.

Я думаю, что проблема возникает, когда я добавляю маркеры на карту? Но ошибок нет, просто карта не загрузится, если я добавлю «заметки» во всплывающее окно. Любая помощь приветствуется, спасибо.

1 Ответ

0 голосов
/ 13 января 2019

Вероятно, это связано со специальным символом в строке. У меня есть две идеи:

  • Убедитесь, что у вас самая новая версия фолиума (0.7.0), это поведение было улучшено.
  • Попробуйте экранировать текст перед его передачей: html.escape(my_string)

Можете ли вы указать точное значение в location[14].note? Это определенно поможет отладке этого. Кроме того, используйте инструменты разработчика вашего браузера, чтобы увидеть сообщение об ошибке в консоли.

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