2017-09-14 1 views
1

Ich bin neu in folium. Ich konnte die gewünschte Karte aus einem Datenrahmen erzeugen.Folium Popup bekommt Syntax Fehlermeldung

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) 

Karte kommt gut aus.

Als nächstes wollte ich Popups aus einer dritten Spalte im Datenrahmen hinzufügen, und kann nicht scheinen, Syntax richtig zu bekommen. Nicht klar, wie ich diese Popups aus der Folium-Dokumentation hinzufügen könnte. Eine Fehlermeldung kann mir nicht Ergebnisse aus diesem Code interpretieren:

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) 

Zu meiner Schleife und Datenrahmen waren in Ordnung, ich in der for-Schleife jeder

print each[1]["GEO_CITY_0"] 

statt folium.circlemarker ersetzt zu überprüfen und es hat gut funktioniert. Etwas ist falsch, wenn ich die obige Popup-Syntax verwende.

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

Ihre Hilfe geschätzt. Danke ps.s Vollständige Nachricht ist:

Traceback (jüngste Aufforderung zuletzt):

Datei "", Linie 4, in Radius = 1, color = '# 3186cc', fill_color = '# 3186cc') add_to (. df_map)

Datei "C: \ Benutzer \ Peter \ Anaconda3 \ lib \ site-packages \ folium \ features.py", Linie 870, in init Super (CircleMarker, Selbst-). init (location = Ort, popup = Popup)

Datei "C: \ Benutzer \ Peter \ Anaconda3 \ lib \ site-packages \ folium \ map.py", Linie 652, in selbst init. add_child (Pop-up)

Datei "C: \ Benutzer \ Peter \ Anaconda3 \ lib \ site-packages \ branca \ element.py", Linie 96, in add_child name = child.get_name()

Attribute : 'float' Objekt hat kein Attribut 'get_name'

+0

Hallo, welche Version von Folium verwenden Sie? Ich glaube, dass dieser Fehler in früheren Versionen von Folium erwartet wird. Vielleicht könnten Sie ein Upgrade durchführen oder Sie könnten dies stattdessen tun. 'popup = folium.Popup (jedes [1] [" GEO_CITY_0 "])' –

+0

Dieses [Problem] (https://github.com/python-visualisierung/folium/issues/259) beschreibt das Problem und die Änderung später Versionen –

+0

Hallo Bob - Ausgezeichnet. Vielen Dank für Ihren Kommentar. Ich habe Version 0.4.0. Ich sah, dass das Paket vor zwei bis drei Tagen auf Version 0.5.0 aktualisiert wurde. Ihre Syntax ist was ich brauchte. Sehr geschätzt. Ich bin mir nicht sicher, wie ich ein Stack-Overflow-Problem schließen könnte - ich werde mich umsehen - aber dieses ist geschlossen. Danke – pzajonc

Antwort

1

Ich war unde R der Eindruck, dass @ Pzajonc-Syntax von popup=each[1]["GEO_CITY_0"] in neueren Versionen (OPs hat 0.4.0) von Folium funktioniert.

Hier ist ein Github issue, die den Fehler erwähnt und die fix

Unabhängig davon, es zu popup=folium.Popup(each[1]["GEO_CITY_0"]) Ändern wird das Problem beheben.

+0

Ich akzeptiere diese Antwort. Danke Bob. (Mein Ruf ist noch nicht hoch genug, um die Abstimmung zu machen.) Ja- ich dachte, meine Syntax popup = jeder war richtig, und es ist lustig, dass es für Sie funktionierte, während die alternative Syntax Popup = Folium.popup (jeder) Sie bereitgestellt löst mein Problem - ich arbeite in Windows 10 unter Python 3.6 – pzajonc

+0

HI pzajonc, klicken Sie einfach auf das Häkchen auf der linken Seite meiner Antwort –