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

DataFrame真值判断歧义报错求助:坐标距离计算代码问题

问题解决:DataFrame布尔值歧义报错

错误原因

你遇到的报错源于两个问题:

  1. 参数传错:调用haversine_np(x,y,u,v)时,误把v(d.items()返回的整个DataFrame/Series对象)当成单个坐标值传入,导致计算出的distance是一个DataFrame/Series而非单个数值。在if distance < 0.03中直接判断整个DataFrame的布尔值,Python无法确定你要判断全部元素还是任意元素满足条件,因此抛出歧义错误。
  2. 循环缩进错误:外层for k, v in d.items():后的内层循环没有缩进,会触发语法错误。

修正后的代码

for k, v in d.items():
    for x, y in zip(df3['0'], df3['1']):
        for u, w in zip(v['0'], v['1']):
            # 将参数v替换为w,对应第二个坐标对的第二个值
            distance = haversine_np(x, y, u, w)
            if distance < 0.03:
                print(x, u, y, w, distance)

关键说明

  • 确认haversine_np函数是接收四个单个数值参数(如纬度、经度对)计算两点距离的,这样返回的distance是单个数值,能正常与0.03比较。
  • Python靠缩进区分代码块,外层循环的内层代码必须缩进4个空格(或1个制表符)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:26:04