Folium choropleth 根本没有给邮政编码区域着色

Folium choropleth not colorizing ZIP code areas at all

我正在使用 Folium 按邮政编码生成收入报告,以确定在哪里设立新办事处。

虽然 geoJSON 似乎正确地覆盖在地图上,但它似乎并未将收入金额热映射到各自的邮政编码。

JSON文件中的特征名称是feature.properties.ZCTA5CE10

如此处所示,在文件的前几行中。 ZCTA5CE10 对应邮政编码。这是 GitHub 上 GeoJSON 文件的 link。 https://github.com/OpenDataDE/State-zip-code-GeoJSON/blob/master/tx_texas_zip_codes_geo.min.json

{"type":"FeatureCollection",
"features":[{
  "type":"Feature",
  "properties":
{"STATEFP10":"48","ZCTA5CE10":"75801","GEOID10":"4875801","CLASSFP10":"B5","MTFCC10":"G6350","FUNCSTAT10":"S","ALAND10":555807428,"AWATER10":6484251,"INTPTLAT10":"+31.7345202","INTPTLON10":"-095.5313809","PARTFLG10":"N"},"geometry":{"type":"Polygon","coordinates":[[[-95.680719,31.727999]

我的收入数据是一个包含 2 列的 CSV 文件,ZIP CODE 和 AUGUST。

CSV 示例:

ZCTA5CE10,AUGUST
"76701",2676.89
"76643",8625.79
"76655",5618
"76710",23265.18
"76708",14618.35
"76706",14335.85
"76705",9338.44
"76633",4215.39
"76712",35488.02
"76657",10186.13
"76664",1361
"76711",2812.35
"76682",713

最后,我的代码。

import folium
from folium.plugins import MarkerCluster
import pandas as pd
import os
map = folium.Map(location=[31.5493, -97.1467],
                 default_zoom_start=15)

revdata = pd.read_csv(os.path.join('revenue.csv'))
revdata.info()

folium.Choropleth(geo_data="tx_texas_zip_codes_geo.min.json",
                data = revdata,
                columns = ['ZIP CODE', 'AUGUST'],
                key_on = 'feature.properties.ZCTA5CE10',
                fill_color='BuPu', fill_opacity=0.7, line_opacity = 0.2,
                legend_name = 'REVENUE BY ZIP').add_to(map)
marker_cluster = MarkerCluster().add_to(map)

map.save('mymap.html')

我试过更改我的 CSV 文件中的邮政编码以在它们周围加上引号,但这并没有改变任何东西。

想法?

我已经意识到问题所在了。

当时 revdata.info 我看到无论第一列上的引号如何,该列都被导入为整数类型。我将我的 CSV 读取行更新为 revdata = pd.read_csv(os.path.join('revenue.csv'), dtype={'ZCTA5CE10': object}),特别指出第一列需要作为字符串文字导入,这样可以将其与 GeoJSON 中的邮政编码进行正确比较。

除此之外,我使用 PyGeoJ 清理我的主要 GeoJSON 文件,以排除我的收入报告中所有未使用的邮政编码(这将我的最终地图 html 大小从 87mb 减少到 2.3)。