Я пытаюсь применить if if к функции, имеющей шестнадцатеричный код цвета. Если значение равно «PU», оно должно возвращать указанный c цвет. Я применяю функцию на карте фолиума, но у меня Key Error KA
, это словарь, у меня есть
values = {'state':['KA','BL','KPK','PU'],'Temperature':[70,56,47,30],'Lat':[24.8607,25.3960,27.7244,27.5570],'Long':[67.0011,68.3578,68.8228,68.2028]}
temp_data = pd.DataFrame(values)
state_info = temp_data.set_index('Temperature')['state'].to_dict()
print(state_info)
значения, которые я получаю после set_index()
{70: 'KA', 56: 'BL', 47: 'KPK', 30: 'PU'}
dict_keys([70, 56, 47, 30])
dict_values(['KA', 'BL', 'KPK', 'PU'])
Я использую словарь для нанесения другого цвета на заданное c состояние
полный код
def my_color_function(feature):
"""Maps low values to green and hugh values to red."""
if state_info[feature['id']] == 'KA':
return '#ff0000'
else:
return '#008000'
m = folium.Map([30.3753, 69.3451], tiles='Stamen Terrain', zoom_start=5)
state_geo = os.path.join('', 'pakistan.json')
folium.GeoJson(
state_geo,
style_function=lambda feature: {
'fillColor': my_color_function(feature),
'color' : 'black',
'weight' : 2,
'dashArray' : '5, 5'
}
).add_to(m)
m