Choropleth в Folium — возникли проблемы

#choropleth #folium

#choropleth #folium

Вопрос:

Я довольно новичок в кодировании, и мне нужно создать некоторый тип карты для отображения моих данных. У меня есть данные на листе Excel, показывающие список стран и число, показывающее количество определенных преступлений. Я хочу показать это на карте choropleth.

Я видел много разных способов закодировать это, но, похоже, не могу заставить ни один из них правильно считываться в данных. Нужно ли мне будет импортировать коды стран в мой df?

У меня есть карта мира с github, и я загрузил ее в формате raw на свой компьютер и в ноутбук jupyter.

Мой фрейм данных также загружен в виде листа Excel в jupyter notebook.

Какие первые шаги мне нужно предпринять, чтобы загрузить это на карту?

Это код, с которым я добился наибольшего успеха:

 import pandas as pd
import folium

df = pd.read_excel('UK - Nationality and Type.xlsx')
state_geo = 'countries.json'

m1 = folium.Map(location=[55, 4], zoom_start=3)
m1.choropleth(
geo_data=state_geo,
data=df,
columns=['Claimed Nationality', 'Labour Exploitation'],
key_on='feature.id',
fill_color='YlGn',
fill_opacity=0.5,
line_opacity=0.2,
legend_name='h',
highlight=True
)

m1.save("my_map.html")`
  

Но я просто получаю большую карту мира, все в том же оттенке серого

это то, что страны.json выглядит как

Комментарии:

1. Привет, Сэм, какая версия folium у тебя есть? Также есть ли шанс, что вы могли бы опубликовать отрывок из countries.json ? или, возможно, ссылка на него?

2. columns=['Claimed Nationality', 'Labour Exploitation'], key_on='feature.id', выполните ‘Требуемое гражданство’ и ‘feature.id Совпадает? Они должны.

3. я не уверен, какая версия запущена — она предварительно загружена в моей университетской системе

4. Теперь я исправил ключ в коде, чтобы убедиться, что это соответствует json, и теперь у меня есть цветная карта, которая кажется правильной — есть ли способ добавить маркеры наведения, показывающие конкретный номер по отношению к этой стране?

5. также перед выполнением маркеров — похоже, что данные о стране, которые не отображаются в моем df, но находятся в файле json, окрашены, а не остаются пустыми — есть ли способ отображать только страны, указанные в моем df?