Проблема в том, что имя ключа и имя Police_Force в вашей базе данных не совпадают. Поэтому после анализа ваших данных, а также файла JSON я провел некоторую предварительную обработку ваших данных, чтобы имя совпадало с ключом в нашем файле JSON.
Вот полное решение вашего вопроса.
# import libraries
import pandas as pd
import folium
import json
import webbrowser
# read data
adults_trafficked = pd.read_excel('Adults trafficked.xlsx')
# Pre processing of data
adults_trafficked['Police_Force'] = adults_trafficked['Police_Force'].replace('Police|Constabulary','', regex=True, ).replace('&','and', regex=True)
adults_trafficked.loc[adults_trafficked['Police_Force'] == "Metropolitan Service",'Police_Force' ] = 'Metropolitan Police'
# remove any trailing or leading white spaces
adults_trafficked['Police_Force'] = adults_trafficked['Police_Force'].str.strip()
# border json file
force_boundaries = 'Police_Force_Areas_December_2016_Generalised_Clipped_Boundaries_in_England_and_Wales.geojson.json'
# choropleth map
m = folium.Map([52.6333, -1.1333], zoom_start=7)
m.choropleth(
geo_data=force_boundaries,
data=adults_trafficked,
columns=['Police_Force', 'Adults_Exploited'],
key_on='feature.properties.pfa16nm',
threshold_scale=[0, 40, 80, 120, 160, 200],
fill_color='BuPu',
legend_name='Trafficked Humans',
)
m.save('map.html')
webbrowser.open('map.html')
Обратите внимание, что длина threshold_scale не может быть больше 6. Я вижу, что у вас было 8. Также в вашем файле json есть только 44 данных Police_force, а длина вашего набора данных - 47. Таким образом, эти 3 данные, которые не были спички были проигнорированы.
Это то, что вы получите
![enter image description here](https://i.stack.imgur.com/ynjVS.jpg)
Если у вас возникли проблемы с пониманием какой-либо части кода, прокомментируйте ниже.