You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用folium.PolyLine读取pandas数据框坐标绘制连线

解决方案

错误原因与修正代码

方法1问题说明

  1. apply默认按列遍历(axis=0),不会逐行读取字段,导致匹配不到Pickup_Lat字段抛出KeyError
  2. add_to(m)调用对象错误,原写法对apply返回的Series对象调用,而非对每行生成的PolyLine对象调用,逻辑不成立

方法1修正后代码

df_filtered_all.apply(lambda row: folium.PolyLine(
    locations=[[row['Pickup_Lat'], row['Pickup_lng']], [row['Del_Lat'], row['Del_lng']]],
    color='red'
).add_to(m), axis=1)

新增axis=1指定按行遍历,同时将add_to(m)移入lambda内部,直接对每个生成的折线对象添加到地图


方法2问题说明

itertuples的name参数传入了Pandas,这是Pandas的保留命名,会触发内部逻辑冲突导致递归报错

方法2修正后代码

for row in df_filtered_all.itertuples(index=True, name=None):
    folium.PolyLine(
        [[row.Pickup_Lat, row.Pickup_lng], [row.Del_Lat, row.Del_lng]],
        color='red'
    ).add_to(m)

将name改为None后返回普通元组,可直接通过字段名读取属性,无需调用getattr

内容的提问来源于stack exchange,提问作者Darshana Esajenith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:00:05