Неизвестный код формата 'f' для объекта типа 'str'- Folium

1

У меня есть dataframe, который выглядит как ниже

    Number  Names   latitude    longitude
0   1       Josh    25.713277   80.746531
1   2       Jon     25.713277   80.746531
2   3       Adam    25.713277   80.746531
3   4       Barsa   25.713277   80.746531
4   5       Fekse   25.713277   80.746531
5   6       Bravo   25.713277   80.746531
6   7       Levine  25.713277   80.746531
7   8       Talyo   25.713277   80.746531
8   9       Syden   25.713277   80.746531
9   10      Zidane  25.713277   80.746531

Я пытаюсь создать фолиевую карту для этого фрейма данных, я хотел, чтобы значения столбца Number отображались в некотором цвете на основе значений столбца Names со следующим кодом, в основном я хочу, чтобы число от 1 до 10 отображалось в некотором цвете для места, основанного на Именах. Например, 1 должен отображаться в lightblue, 2 должен отображаться green цветом, а остальная часть цифр должна отображаться red цветом

for Number,Names,latitude,longitude in zip(dsa['Number'],dsa['Names'],dsa['latitude'],dsa['longitude']):
    folium.Marker(location=[latitude,longitude],
                  icon=folium.DivIcon(
                      html=f"""<div style="font-family: courier new; color: {'lightblue' if Names == 'Josh' else 'green' if Names == 'Jon' else 'red'}">{"{:.0f}".format(Number)}</div>""")
                  ).add_to(m)
m.save(os.path.join('color_popups1231.html'))

Но когда я выполняю это, я получаю эту ошибку:

ValueError: Unknown format code 'f' for object of type 'str'

Что мне здесь не хватает?

  • 1
    Какая у вас версия Python? f строки были введены только в Python3.6.
  • 0
    Версия Python 3.6.4
Теги:
pandas
folium

1 ответ

0
Лучший ответ

Формат f формате "{:.0f}".format(Number) для форматирования строки Python требует плавающего числа, и все же вы передаете ему переменную Number, которая получена из dsa['Number'], строковое значение из фрейма данных. Вы должны преобразовать Number в плавающее число, прежде чем передавать его в форматтер с "{:.0f}".format(float(Number)).

  • 1
    Спасибо это работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню