2017-09-14 90 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,只需点击我的答案左边的复选标记 –