字段计算器和Python 3字符串重新分类警告

2024-10-01 15:44:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在ArcPro中抛出python 3警告,其中指出:

Warning 002858: Certain rows set to NULL due to error while evaluating python expression: File "string", line 3, in reclass

我使用的代码如下:

UpOrDown_PerAcre = reclass(!GP2040Area!,!UpOrDownNum!)

代码块

def reclass(GP2040AREA, UpOrDownNum): if (UpOrDownNum != 0 or UpOrDownNum != 999): UpOrDown_PerAcre = GP2040AREA * UpOrDownNum return UpOrDown_PerAcre

我想做的是,对于UpOrDownNum中不是0或999的每个单元格,在新列UpOrDown\u PerAcre中输出单元格GP2040ArEA和UpOrDownNum的倍数

根据我的理解,第3行应该是“UpOrDown_PerAcre=GP2040AREA*UpOrDownNum”,也就是说输出是一个字符串?我确实将if语句分类为if (UpOrDownNum == int and UpOrDownNum != 0 or UpOrDownNum != 999):,因为UpOrDownNum中存在-are-null值,这可能会抛出一个“string”警告,但从if语句中删除该警告后,情况是一样的

我到底哪里出错了


Tags: orto代码警告stringif语句warning
1条回答
网友
1楼 · 发布于 2024-10-01 15:44:35

也许check-UpOrDownNum不是None(Python版本的null):

def reclass(GP2040AREA, UpOrDownNum):
    if (UpOrDownNum is not None and (UpOrDownNum != 0 or UpOrDownNum != 999)):
        UpOrDown_PerAcre = GP2040AREA * UpOrDownNum
        return UpOrDown_PerAcre
    else:
        return None # or 0 or -1 or whatever you want to signify the UpOrDown_PerAcre wasn't calculated

相关问题 更多 >

    热门问题