Python 使用folium和pandas绘制Choropleth地图

Python 使用folium和pandas绘制Choropleth地图,python,choropleth,folium,Python,Choropleth,Folium,我正在使用folium创建一组国家的choropleth地图。我正在跟踪调查。然而。由于某种原因,地图没有显示任何阴影。我正在使用来自自然地球的世界geojson(请参阅) 我的数据框看起来像: >>> spatial_scores.head() Out[1]: id Country Score PER Peru 2.810300 HND Honduras 2.734521 GUF French Guiana 2.730886 SLV El Salvador

我正在使用
folium
创建一组国家的choropleth地图。我正在跟踪调查。然而。由于某种原因,地图没有显示任何阴影。我正在使用来自自然地球的世界geojson(请参阅)

我的数据框看起来像:

>>> spatial_scores.head()

Out[1]:
id  Country Score
PER Peru    2.810300
HND Honduras    2.734521
GUF French Guiana   2.730886
SLV El Salvador 2.473134
CRI Costa Rica  2.454963
>>> world_json['features'][0]['id']

Out [2]:
u'AFG'
这个世界看起来像:

>>> spatial_scores.head()

Out[1]:
id  Country Score
PER Peru    2.810300
HND Honduras    2.734521
GUF French Guiana   2.730886
SLV El Salvador 2.473134
CRI Costa Rica  2.454963
>>> world_json['features'][0]['id']

Out [2]:
u'AFG'
choropleth代码的相关部分如下所示:

map1 = folium.Map(location=[-15., -60], zoom_start=4)

map1.geo_json(geo_path=world_json_path,
              data_out='data.json',
              data=spatial_scores,
              columns=['id', 'Score'],
              threshold_scale=[0, 1, 2, 3, 4],
              key_on='features.id',
              fill_color='BuPu', fill_opacity=0.7, line_opacity=0.5,
              legend_name='Score')

map1.create_map('./Scores.html')
然而,我没有得到任何choropleth结果,只剩下下面的基本国家地图

我做错什么了吗

[编辑]

我解决了这个问题。要绘制
choropleth
,我只需要在
geojson
中保留那些键,它们也在我的数据帧中

merged = gdf.merge(spatial_scores, left_on='name', right_on='Country')
spatial_gdf = gpd.GeoDataFrame(merged.iloc[:, [0, 1]])
data_df = merged.iloc[:, [2, 3, 4]]

彼此彼此。。你找到解决办法了吗?嗨,我自己解决了。。今晚将更新要点。一个非常简单的答案是,在geojson中,您只需要将数据可用的那些键放在相应的表中(太好了,谢谢:)期待看到您的代码!查看更新后的问题,如果您单击链接的要点,您将得到答案如果此库给您带来麻烦,您可以尝试详细解答。它还支持choropleth绘图和悬停以获取精确数据。