如何在GeoPandas explore的Folium标记内添加列对应数值
解决方法
你遇到的错误是因为直接将整个Series(gdfNORTE["Cantidad de veces visitado"])传给了BeautifyIcon的number参数,而该参数需要单个标量值,而非序列。要实现每行标记显示对应数值且不手动循环,可以利用GeoPandas explore方法支持按行生成图标的特性,通过lambda函数为每行创建自定义的BeautifyIcon。
修正后的代码如下:
import folium.plugins as plugins gdfNORTE.explore( m=m, marker_type='marker', marker_kwds={ 'icon': lambda row: plugins.BeautifyIcon( icon="map-marker", icon_shape="marker", number=row["Cantidad de veces visitado"] ) }, tooltip=["CALLE","NUMERO","ACT ECON","DESCRIPCION","CANT_TRAB","TRAB", "Cantidad de veces visitado"], tooltip_kwds=dict(labels=True), name="Domicilios visitados", prefer_canvas=True, )
关键说明:
- 使用
lambda row作为icon的值,GeoPandas会自动遍历GeoDataFrame的每一行,将当前行数据传入lambda函数。 - 函数内部通过
row["Cantidad de veces visitado"]获取当前行的访问次数数值,传递给BeautifyIcon的number参数,实现每个标记显示对应行的数值。 - 这种方式无需手动编写循环,完全利用GeoPandas的内置逻辑完成批量图标生成。
内容的提问来源于stack exchange,提问作者Carlos Char
相关产品推荐
相关产品推荐

