2017-09-14 71 views
1

我是葉片新手。我能夠從數據框中生成我想要的地圖。Folium popup獲取語法錯誤消息

df_map = folium.Map(location=[37.750999450684, -97.821998596191], zoom_start=4) 

for each in df[0:len(df)].iterrows(): 
    folium.CircleMarker(location=[each[1]["GEO_LAT_0"], each[1]["GEO_LNG_0"]], 
        radius=5.0, color='#3186cc', fill_color='#3186cc').add_to(df_map) 

地圖出來很好。

接下來,我想從數據幀中的第三列添加彈出,似乎並不能得到正確的語法。不清楚我可能會如何從folium文檔中添加這些彈出窗口。一個錯誤消息我無法通過此代碼解讀結果:

df_map = folium.Map(location=[37.750999450684, -97.821998596191], zoom_start=4) 

for each in df[0:len(df)].iterrows(): 
    folium.CircleMarker(location=[each[1]["GEO_LAT_0"], each[1]["GEO_LNG_0"]], 
        **popup=each[1]["GEO_CITY_0"],** 
        radius=5.0, color='#3186cc',fill_color='#3186cc').add_to(df_map) 

要驗證我的循環和數據幀是好的,我的for-each循環代替folium.circlemarker內取代的

print each[1]["GEO_CITY_0"] 

它運行良好。當我使用上面的彈出語法時,有些事情是錯誤的。

AttributeError: 'float' object has no attribute 'get_name' 

您的幫助表示讚賞。感謝p.s.完整的消息是:

回溯(最近通話最後一個):

文件 「」,4號線,在 半徑= 1,顏色= '#3186cc',fill_color = '#3186cc')add_to(。 df_map)

文件 「C:\用戶\彼得\ Anaconda3 \ LIB \站點包\大青葉\ features.py」,線路870,在初始化 超(CircleMarker,個體經營)。 初始化(位置=位置,彈出=彈出)

文件 「C:\用戶\彼得\ Anaconda3 \ LIB \站點包\大青葉\ map.py」,線路652,在初始化 自我。 add_child(彈出)

文件 「C:\用戶\彼得\ Anaconda3 \ LIB \站點包\布蘭卡\ element.py」,行96,在add_child 名= child.get_name()

AttributeError的:「浮動」對象沒有屬性「GET_NAME」

+0

嗨,您使用的是什麼版本的大青葉?我相信在早期版本的folium中會出現這個錯誤。所以也許你可以升級,或者你可以這樣做。 '彈出= folium.Popup(各[1] [ 「GEO_CITY_0」])' –

+0

這個[問題](https://github.com/python-visualization/folium/issues/259)描述的問題,並在以後的變化版本 –

+0

嗨鮑勃 - 優秀。謝謝你的評論。我有版本0.4.0。我看到該軟件包僅在2-3天前更新至0.5.0版本。你的語法就是我所需要的。非常感激。我不知道如何關閉堆棧溢出問題 - 我會環顧四周 - 但這個是關閉的。謝謝 – pzajonc

回答

1

我理解過程r @ pzajonc的popup=each[1]["GEO_CITY_0"]語法可以在最近版本(OP的0.4.0)中使用。

這裏有一個github上issue出現提及錯誤和fix

無論如何,將其更改爲popup=folium.Popup(each[1]["GEO_CITY_0"])將解決此問題。

+0

我接受這個答案。感謝鮑勃。 (我的聲望還不夠高,不支持投票。)是的 - 我認爲我的語法popup =每個都是正確的,而且它對你很有趣,而替代語法popup = Folium.popup(each)you提供解決我的問題 - 我在Windows 10下運行python 3.6 – pzajonc

+0

HI pzajonc,只需點擊我的答案左邊的複選標記 –