簡體   English   中英

類型為'str'的對象的未知格式代碼'f'-Folium

[英]Unknown format code 'f' for object of type 'str'- 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

我正在嘗試為此數據幀創建一個葉形貼圖,我希望使用以下代碼基於“ Names列的值以某種顏色顯示“ Number ,基本上我希望以某種顏色顯示數字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'

我在這里想念什么?

Python字符串格式化程序的"{:.0f}".format(Number)f格式代碼需要一個浮點數,但是您要向其傳遞變量Number ,該變量是從dsa['Number']派生的,數據幀中的字符串值。 您應先將Number轉換為浮點數,然后再使用"{:.0f}".format(float(Number))將其傳遞給格式化程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM