Я использую Folium для создания отчета о доходах по почтовому индексу, чтобы определить, где sh новый офис.
Хотя кажется, что гео JSOn правильно накладывается на карту , это не похоже на тепловое сопоставление суммы дохода с соответствующими почтовыми индексами.
Имя функции в файле JSON - feature.properties.ZCTA5CE10
Как видно здесь , в первых нескольких строках файла. ZCTA5CE10 соответствует почтовому индексу. Вот ссылка на файл Geo JSON на GitHub. 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]
Мои данные о доходах - это файл CSV с 2 столбцами, ПОЧТОВЫЙ ИНДЕКС и АВГУСТ.
Пример 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-файле, чтобы они были заключены в кавычки, но это ничего не меняет.
Идеи ?