Последние пару дней я изо всех сил пытался заставить карту Folium Choropleth работать правильно.Наиболее вероятной причиной моей проблемы является то, как загружается файл JSON или сам JSON.
Когда я открываю файл JSON с помощью with open('PaCounty2019_01.json') as data_file:
county_data = json.load(data_file)
, я получаю следующую ошибку: AttributeError: 'NoneType' object has no attribute 'get'
Когда я открываю файл JSON с помощью county_data = pd.read_json('PaCounty2019_01.json')
, я получаю следующую ошибку ValueError: Unhandled objecttype features
, и он печатает фрейм данных, который имеет только 2 столбца, вторая строка представляет собой вложенный dict .... Так что давайте попробуем использовать json _normalize
...
Я получаю ту же ошибку, что и выше, но у меня на этот раз 23 столбца вместо двух.
Я также убедился, что и для json, и для csv было одинаковое имя столбца, чтобы включить его,это тоже не сработало
Ссылка JSON здесь: https://drive.google.com/open?id=1RR2hwymtugKO33F_PCrnLvh2qUBMlmKF Ссылка CSV здесь: https://drive.google.com/open?id=1fXSghs5cFVWIjDXn1zNNres4HOs2OiQU
import folium
import pandas as pd
import json
from pandas.io.json import json_normalize
county_data = pd.read_json('PaCounty2019_01.json')
county_data = json_normalize(county_data['features'])
drug_data = pd.read_csv('PA_Drug_Total.csv')
m = folium.Map(location=[48, -102], zoom_start=3)
m.choropleth(
geo_data=county_data,
name='choropleth',
data=drug_data,
columns=['COUNTY_NUM', 'rate'],
key_on='features.properties.COUNTY_NUM',
fill_color='BuPu',
fill_opacity=0.2,
line_opacity=0.8,
legend_name='Crime rate per 100,000 people'
)
folium.LayerControl().add_to(m)
m.save('webmap.html')