1

我是新来的叶子。我能够从数据框中生成我想要的地图。

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)

为了验证我的循环和数据框是否正常,我替换了一个

print each[1]["GEO_CITY_0"]

在 for-each 循环而不是 folium.circlemarker 中,它工作正常。当我使用上面的弹出语法时出了点问题。

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

感谢您的帮助。谢谢 ps 完整信息是:

回溯(最近一次通话最后):

文件“”,第 4 行,半径=1,颜色='#3186cc',填充颜色='#3186cc').add_to(df_map)

文件“C:\Users\Peter\Anaconda3\lib\site-packages\folium\features.py”,第 870 行,在init super(CircleMarker, self) 中。初始化(位置=位置,弹出=弹出)

文件“C:\Users\Peter\Anaconda3\lib\site-packages\folium\map.py”,第 652 行,在init self.add_child(popup)

文件“C:\Users\Peter\Anaconda3\lib\site-packages\branca\element.py”,第 96 行,在 add_child name = child.get_name()

AttributeError:“float”对象没有属性“get_name”

4

1 回答 1

1

我的印象是@pzajonc 的语法popup=each[1]["GEO_CITY_0"]适用于 folium 的最新版本(OP 有 0.4.0)。

这是一个提到错误和修复的github问题

无论如何,将其更改为popup=folium.Popup(each[1]["GEO_CITY_0"])将解决问题。

于 2017-09-15T15:12:20.380 回答