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

Python调用apply函数时出现NameError错误的技术求助

问题解决:NameError: name 'lat' is not defined

错误原因

  • 列名未用字符串引用:row[lat]里的lat被Python当成了未定义的变量,实际上你需要用字符串形式指定DataFrame的列名,比如row['lat'](前提是你的DataFrame确实存在名为lat和lon的列)。
  • apply参数位置错误:axis=1是apply函数的参数,不该放到distance函数的调用参数里,位置放错会导致语法逻辑混乱。

修正后的代码

from typing import Tuple
import geopy.distance

def distance(
    lat: float, lon: float, fixed_coords: Tuple[float] = (36.7196, -4.42002)
) -> float:
    return geopy.distance.distance((lat, lon), fixed_coords).km

# 修正两处问题:列名加字符串引号,axis参数移至apply函数内
x = dataframe.apply(lambda row: distance(row['lat'], row['lon']), axis=1)

额外提示

如果你的DataFrame列名不是'lat'和'lon',记得把引号内的名称替换成你实际使用的列名,比如row['latitude']、row['longitude']。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:45:20