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
相关产品推荐
相关产品推荐

