Folium 弹出窗口获取语法错误消息

Folium popup gets syntax error message

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

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' 

感谢您的帮助。谢谢p.s。完整消息是:

追溯(最近调用最后):

文件“”,第 4 行,位于 radius=1, color='#3186cc', fill_color='#3186cc').add_to(df_map)

文件 "C:\Users\Peter\Anaconda3\lib\site-packages\folium\features.py",第 870 行,在 init 中 super(CircleMarker, self).init(location=location, popup=popup)

文件 "C:\Users\Peter\Anaconda3\lib\site-packages\folium\map.py",第 652 行,在 init 中 self.add_child(弹出窗口)

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

AttributeError: 'float' 对象没有属性 'get_name'

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

这里是githubissue that mentions the error and the fix

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