在过去的几天里,我一直在努力使Folium Choropleth地图正常工作。我的问题最可能的原因是JSON文件的加载方式或JSON本身。
当我使用with open('PaCounty2019_01.json') as data_file:
county_data = json.load(data_file)
打开JSON文件时,出现以下错误AttributeError: 'NoneType' object has no attribute 'get'
当我使用county_data = pd.read_json('PaCounty2019_01.json')
打开JSON文件时,出现以下错误ValueError: Unhandled objecttype features
,它会打印只有两列的数据框,第二行是嵌套字典。尝试使用json _normalize
...
我收到与上述相同的错误,但是这次我有23列而不是2列。
我还确保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')