CÓMO

Reemplazar valores nulos por ceros en una tabla de atributos en ArcMap

Last Published: May 26, 2020

Resumen

Una tabla de atributos puede contener varios campos con valores nulos y, de forma predeterminada, estos campos se rellenan con un espacio vacío. En algunos casos, algunas herramientas o funciones no se ejecutan si los campos no se rellenan con caracteres (campos no anulables).

Procedimiento

Este artículo describe dos formas de reemplazar valores nulos en una tabla de atributos; reemplazando los valores nulos en la tabla de atributos o reemplazando los valores nulos en una única columna (campo).

Reemplazar los valores nulos de una tabla de atributos mediante el módulo ArcPy

Nota: El siguiente script se puede utilizar en la consola de Python de ArcMap o como un script independiente.
  1. Importe el módulo necesario.
import arcpy
  1. Especifique la ruta de la clase de entidad.
path = r'C:\Users\User\Test\Misc\Test.gdb\Testing'
  1. Enumere todos los campos y cree una matriz vacía para almacenar todos los valores de campo.
fieldObs = arcpy.ListFields(path) fieldNames = []
  1. Recorra en bucle los campos y determine el recuento de los valores.
for field in fieldObs: fieldNames.append(field.name) del fieldObs fieldCount = len(fieldNames)
  1. Cree un nuevo bucle para buscar y reemplazar los campos nulos con el valor deseado utilizando la función UpdateCursor().
with arcpy.da.UpdateCursor(path, fieldNames) as curU: for row in curU: rowU = row for field in range(fieldCount): if rowU[field] == None: rowU[field] = "0" curU.updateRow(rowU)
  1. Elimine el cursor creado para liberar el bloqueo en la clase de entidad.
del curU

A continuación, se muestra el script completo:

import arcpy path = r'C:\Users\User\Desktop\Misc\Piracy.gdb\Continents' fieldObs = arcpy.ListFields(path) fieldNames = [] for field in fieldObs: fieldNames.append(field.name) del fieldObs fieldCount = len(fieldNames) with arcpy.da.UpdateCursor(path, fieldNames) as curU: for row in curU: rowU = row for field in range(fieldCount): if rowU[field] == None: rowU[field] = "0" curU.updateRow(rowU) del curU

Reemplazar los valores nulos de un único campo mediante la Calculadora de campo y el analizador de Python

  1. En ArcMap, haga clic en el menú desplegable Editor de la barra de herramientas Editor y seleccione Comenzar la edición.
  2. Haga clic con el botón derecho en la capa seleccionada en la Tabla de contenido y seleccione Abrir tabla de atributos.
Imagen de un campo con valores nulos en una tabla de atributos.
  1. Haga clic con el botón derecho en el campo con valores nulos y seleccione Calculadora de campo.
Imagen de la selección del campo Calculadora de campo.
  1. En la Calculadora de campo, seleccione el analizador de Python y active la casilla de verificación Mostrar bloque de código.
  2. En la casilla Código de script Pre-Logic, copie y pegue este código:
def updateValue(value): if value == None: return '0' else: return value
  1. Escriba el siguiente código en el segundo cuadro y reemplace "!Field_Name!" por el nombre de campo en la lista Campos, como se muestra en la siguiente imagen.
updateValue(!Field_Name!)

Imagen del cálculo de valores nulos en la Calculadora de campo.
  1. Haga clic en Aceptar y los valores nulos se reemplazan por ceros en el campo, como se muestra en la siguiente imagen.
Una imagen de valores de campo nulos reemplazados por cero.
  1. En la barra de herramientas Editor, haga clic en Detener edición y Guardar cambios para conservar los cambios.

Id. de artículo:000016100

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga