“str”类型对象的未知格式代码“f”- Folium

我有一个如下所示的数据框


    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'

我在这里缺少什么?


天涯尽头无女友
浏览 3713回答 1
1回答

Smart猫小萌

Python 字符串格式化f程序中的格式代码"{:.0f}".format(Number)需要一个浮点数,但您要向它传递变量Number,该变量dsa['Number']来自数据帧的字符串值。您应该先转换Number为浮点数,然后再将其传递给格式化程序"{:.0f}".format(float(Number))。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python