Невозможно создать карту хороплета для Индии - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть набор данных, который содержит данные о населении для каждого штата Индии. Я хочу нарисовать карту для одного и того же со всеми штатами и соотношением полов в качестве значения. Вот что я попробовал

import folium
import pandas as pd
world_geo = r'india_state.geojson' # geojson file
link = 'https://en.wikipedia.org/wiki/List_of_states_and_union_territories_of_India_by_population'

tables = pd.read_html(link,header=0)
df_states = tables[1]

# create a plain world map
world_map = folium.Map(location=[0, 0], zoom_start=2, tiles='Mapbox Bright')
world_map.choropleth(
    geo_data=world_geo,
    name='choropleth',
    data=df_states[:-1],
    columns=['State or union territory', 'Sex ratio'],
    key_on='feature.properties.name',
    fill_color='YlGn',
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name='Unemployment Rate (%)'
)
world_map

что дает мне ошибку

Attribute Error
c:\users\himanshu poddar\appdata\local\programs\python\python36-32\lib\site-packages\folium\folium.py in <listcomp>(.0)
    291                 return color_range[len(
    292                     [u for u in color_domain if
--> 293                      get_by_key(x, key_on) in color_data and
    294                      u <= color_data[get_by_key(x, key_on)]])]
    295         else:

c:\users\himanshu poddar\appdata\local\programs\python\python36-32\lib\site-packages\folium\folium.py in get_by_key(obj, key)
    286                 return (obj.get(key, None) if len(key.split('.')) <= 1 else
    287                         get_by_key(obj.get(key.split('.')[0], None),
--> 288                                    '.'.join(key.split('.')[1:])))
    289 
    290             def color_scale_fun(x):

c:\users\himanshu poddar\appdata\local\programs\python\python36-32\lib\site-packages\folium\folium.py in get_by_key(obj, key)
    285             def get_by_key(obj, key):
    286                 return (obj.get(key, None) if len(key.split('.')) <= 1 else
--> 287                         get_by_key(obj.get(key.split('.')[0], None),
    288                                    '.'.join(key.split('.')[1:])))
    289 

AttributeError: 'NoneType' object has no attribute 'get'

Вы можете загрузить и проверить данные геойсона по этой ссылке . Любая помощь будет принята с благодарностью.

...