Форматирование валюты GeoJsonTooltip в Folium - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь отформатировать GeoJsonTooltip в Folium для отображения целого числа в виде валюты (тысячи, разделенные запятой и строкой 'Kč' в конце.) Пример:

ВХОД: 1250000

WANTED OUTPUT: 1 250 000 Kč

Я не могу сделать это в Python через форматирование строки, потому что GeoJsonTooltip не может отображать всплывающие подсказки String и заканчивается следующей ошибкой:

(Ошибка типа: ufun c 'isnan' не поддерживается для типов ввода, и входные данные нельзя безопасно принудительно привести к каким-либо поддерживаемым типам в соответствии с правилом приведения типов '' safe '')

I не смогли найти какое-либо решение этой проблемы. Код для создания карты:

map_choropleth = folium.Map(location=[49.724,15.534],tiles='cartodbpositron', zoom_start=8, min_zoom=8, max_zoom=8, zoom_control=False)
choropleth = folium.Choropleth(geo_data = geojson_countries,
                  data = kraj_stats,
                  columns=['NAZEV_NUTS', 'cena_m2_mean'],
                  key_on='properties.NAZEV_NUTS',
                  fill_color='YlGn',
                  fill_opacity=0.7,
                  line_opacity=0.2,
                  legend_name='Cena za m2 v Kč'
                  ).add_to(map_choropleth)

choropleth.geojson.add_child(folium.features.GeoJsonTooltip(
        fields=['NAZEV_NUTS','cena_mean', 'cena_m2_mean'],
        aliases=['Název kraje', 'Průměrná cena', 'Průměrná cena za m2'],
        style=('background-color: grey; color: white;')
        )
)

map_choropleth.save("mymap.html")

И вот что у меня сейчас:

enter image description here

Может кто-нибудь помочь, пожалуйста

1 Ответ

0 голосов
/ 13 апреля 2020

Мне не удалось установить форматирование валюты в чешских кронах, однако я смог установить интервал чисел с помощью localize = True.

map_choropleth = folium.Map(location=[49.724,15.534],tiles='cartodbpositron', zoom_start=8, min_zoom=8, max_zoom=8, zoom_control=False)
choropleth = folium.Choropleth(geo_data = geojson_countries,
                  data = merged_areas,
                  columns=['NAZEV_LAU1', 'cena_m2_mean'],
                  key_on='properties.NAZEV_LAU1',
                  fill_color='YlGn',
                  fill_opacity=0.85,
                  line_opacity=0.2,
                  legend_name='Cena za m2 v Kč'
                  ).add_to(map_choropleth)

choropleth.geojson.add_child(folium.features.GeoJsonTooltip(
        fields=['NAZEV_LAU1','cena_mean', 'cena_m2_mean'],
        aliases=['Název okresu', 'Průměrná cena [Kč]', 'Průměrná cena za m2 [Kč]'],
        style=('background-color: grey; color: white;'),
        localize=True
        )
)

map_choropleth.save("mymap_okresy.html")
...