我有一个如下所示的数据框 Number Names latitude longitude0 1 Josh 25.713277 80.7465311 2 Jon 25.713277 80.7465312 3 Adam 25.713277 80.7465313 4 Barsa 25.713277 80.7465314 5 Fekse 25.713277 80.7465315 6 Bravo 25.713277 80.7465316 7 Levine 25.713277 80.7465317 8 Talyo 25.713277 80.7465318 9 Syden 25.713277 80.7465319 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 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
Python 字符串格式化f
程序中的格式代码"{:.0f}".format(Number)
需要一个浮点数,但您要向它传递变量Number
,该变量dsa['Number']
来自数据帧的字符串值。您应该先转换Number
为浮点数,然后再将其传递给格式化程序"{:.0f}".format(float(Number))
。
添加回答
举报
0/150
提交
取消