1 votos

Script de Python en la calculadora de campo

Estoy buscando una mano para escribir un script de python en el Field calc, ya que parece que estoy atascado. Aquí está una captura de pantalla de mi tabla:

enter image description here

Lo que tengo que hacer es rellenar el campo "estado" analizando cada campo real (acto) en orden. Si el campo recon_act está rellenado, se pasa al campo Socons_act, si éste está rellenado, se pasa al campo stake_act y así sucesivamente. Si el campo act_act no está poblado, ese es el estado del proyecto. Por ejemplo, el 15º proyecto no tiene una fecha de acto en Recon_act, por lo que el estado será "RECON". Una docena más abajo, un proyecto tiene una fecha en el campo recon_act pero no en el campo SOcons_act, por lo que su estado será "SOcons".

El 4º proyecto hacia abajo tiene fechas en los campos Recon_act, Socons_act, stake_act pero no en el campo plat_act por lo que su estado será "PLAT".

En mi cerebro, la declaración de python tiene que ser algo así:

Si [recon_act] = ' ' entonces Estado = "RECON"

Elseif [SOcons_pro] = ' ' entonces Estado = "Socons"

Elseif [stake_act] = ' ' entonces Estado = "STAKE"

Elseif [plat_act] = ' ' entonces Estado = "PLAT

Elseif

0voto

Chris Kloberdanz Puntos 1871
def function(recon_act, socons_pro, stake_act, plat_act):
    if recon_act is not None:
        return "RECON"
    elif socons_pro is not None:
        return "Socons"
    elif stake_act is not None:
        return "STAKE"
    elif plat_actis not None:
        return "PLAT"

O si sus valores de campo no son NULL, debe reemplazar is not None con == ""

Y luego:

function(!recon_act!, !socons_pro!, !stake_act!, !plat_act!)

0voto

MacroZED Puntos 294

Lo que hay que utilizar es la calculadora de campo.

La expresión :

cal (!Recon_act!, !SOcons_act!, !Stake_act!, !Plat_act!, !permit_act!, !PerRec_act!, !status!)

El bloque de código debería decir:

def cal(rec_a, soc_a, stk_a, plat_a, perm_a, per_a, status):
    if (rec_a is not None) or (rec_a == " "):
       return "Recon"
    elif (soc_a is not None) or (soc_a == " "):
        return "Socons"
    elif (stk_a is not None) or (stk_a == " "):
        return "Stake"
    elif (plat_a is not None) or (plat_a == " "):
        return "Plat"
    elif (perm_a is not None) or (perm_a == " "):
        return "Perm"
    elif (per_a is not None) or (per_a == " "):
        return "Perec"

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X