Python Folium地图仅显示最后一条CSV数据问题排查求助
问题排查与修复
核心问题:缩进错误
Python依赖缩进划分代码块,你的for循环后未对后续代码进行缩进,导致循环体为空——程序只会遍历完所有行,然后在循环结束后仅执行一次标记创建逻辑,自然只会显示最后一行数据的标记。
修复步骤
- 修正缩进:将
for循环内的变量定义、弹窗创建、条件判断代码全部缩进(通常为4个空格),让它们成为循环体的一部分。 - 优化变量读取:循环中直接使用
row对象读取字段,比df.at[i, ...]更简洁高效,也能避免索引相关的潜在问题。
修复后的代码示例
import pandas as pd import folium from folium.plugins import MarkerCluster, FeatureGroupSubGroup # 假设m是已创建的地图对象,比如 m = folium.Map(location=[初始纬度, 初始经度], zoom_start=10) df = pd.read_csv("sur_geo.csv") su = MarkerCluster(name="Surveyors").add_to(m) su1 = FeatureGroupSubGroup(su, "Build Manager PAYE") m.add_child(su1) su2 = FeatureGroupSubGroup(su, "Supervisor PAYE") m.add_child(su2) su3 = FeatureGroupSubGroup(su, "Build Manager - Contractor") m.add_child(su3) su4 = FeatureGroupSubGroup(su, "Supervisor - Contractor") m.add_child(su4) su5 = FeatureGroupSubGroup(su, "Engineer") m.add_child(su5) for i, row in df.iterrows(): # 修正缩进,直接用row读取字段 lat = row['lat'] lng = row['lng'] nm = row['name'] sp = row['title'] sk = row['skillset'] popup = str(sp) if sp == "Build Manager PAYE": folium.Marker( location=[lat, lng], popup=popup, icon=folium.Icon(color='red', icon='glyphicon-calendar', icon_color='blue') ).add_to(su1) elif sp == "Supervisor PAYE": folium.Marker( location=[lat, lng], popup=popup, icon=folium.Icon(color='red', icon='glyphicon-calendar', icon_color='red') ).add_to(su2) elif sp == "Build Manager - Contractor": folium.Marker( location=[lat, lng], popup=popup, icon=folium.Icon(color='red', icon='glyphicon-calendar', icon_color='green') ).add_to(su3) elif sp == "Supervisor - Contractor": folium.Marker( location=[lat, lng], popup=popup, icon=folium.Icon(color='red', icon='glyphicon-calendar', icon_color='black') ).add_to(su4) else: folium.Marker( location=[lat, lng], popup=popup, icon=folium.Icon(color='white', icon='house', prefix='fa', icon_color='green') ).add_to(su5)
额外注意事项
- 确保
lat和lng字段是数值类型(而非字符串),如果CSV中是字符串,需要先转换:lat = float(row['lat']) - 检查地图对象
m是否正确初始化,比如设置了合理的初始坐标和缩放级别,避免标记在视野外导致看不见
内容的提问来源于stack exchange,提问作者Geographos
相关产品推荐
相关产品推荐

