HOW TO

Ersetzen von NULL-Werten durch Nullen in einer Attributtabelle in ArcMap

Last Published: May 26, 2020

Zusammenfassung

Eine Attributtabelle kann mehrere Felder mit NULL-Werten enthalten, und diese Felder werden standardmäßig mit einem Leerzeichen ausgefüllt. Es kann vorkommen, dass bestimmte Werkzeuge oder Funktionen nicht ausgeführt werden, wenn die Felder keine Zeichen enthalten (Felder, die keine NULL-Werte zulassen).

Vorgehensweise

In diesem Artikel werden zwei Methoden zum Ersetzen von NULL-Werten in einer Attributtabelle beschrieben: Ersetzen der NULL-Werte in der Attributtabelle und Ersetzen der NULL-Werte in einer einzelnen Spalte (einem Feld).

Ersetzen der NULL-Werte in einer Attributtabelle mithilfe des ArcPy-Moduls

Hinweis: Das folgende Skript kann in der Python-Konsole von ArcMap oder als eigenständiges Skript verwendet werden.
  1. Importieren Sie das erforderliche Modul.
import arcpy
  1. Geben Sie den Pfad zur Feature-Class an.
path = r'C:\Users\User\Test\Misc\Test.gdb\Testing'
  1. Listen Sie alle Felder auf, und erstellen Sie ein leeres Array zum Speichern sämtlicher Feldwerte.
fieldObs = arcpy.ListFields(path) fieldNames = []
  1. Verarbeiten Sie die Felder in einer Schleife, und bestimmen Sie die Anzahl der Feldwerte.
for field in fieldObs: fieldNames.append(field.name) del fieldObs fieldCount = len(fieldNames)
  1. Erstellen Sie eine neue Schleife, um die NULL-Felder mithilfe der Funktion UpdateCursor() zu suchen und durch den gewünschten Wert zu ersetzen.
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. Löschen Sie den erstellten Cursor, um die Sperre für die Feature-Class aufzuheben.
del curU

Nachfolgend finden Sie das vollständige Skript:

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

Ersetzen der NULL-Werte in einem einzelnen Feld mit Feldberechnung und Python-Parser

  1. Klicken Sie in ArcMap auf das Dropdown-Menü Editor in der Werkzeugleiste Editor, und wählen Sie Bearbeitung starten aus.
  2. Klicken Sie im Inhaltsverzeichnis mit der rechten Maustaste auf den ausgewählten Layer, und wählen Sie Attributtabelle öffnen aus.
Abbildung eines Feldes mit NULL-Werten in einer Attributtabelle
  1. Klicken Sie mit der rechten Maustaste auf das Feld mit NULL-Werten, und wählen Sie dann Feldberechnung aus.
Abbildung der Auswahl der Feldberechnung eines Feldes
  1. Wählen Sie in Feldberechnung den Python-Parser aus, und aktivieren Sie das Kontrollkästchen Code-Block anzeigen.
  2. Kopieren Sie den folgenden Code, und fügen Sie ihn in das Feld Pre-Logic Script Code ein:
def updateValue(value): if value == None: return '0' else: return value
  1. Geben Sie den folgenden Code in das zweite Feld ein, und ersetzten Sie dabei "!Field_Name!" durch den Feldnamen aus der Liste Felder, wie in der folgenden Abbildung dargestellt.
updateValue(!Field_Name!)

Abbildung der Berechnung von NULL-Werten in der Feldberechnung
  1. Klicken Sie auf OK. Die NULL-Werte werden im Feld durch Nullen ersetzt, wie in der folgenden Abbildung dargestellt.
Abbildung der durch
  1. Klicken Sie auf der Werkzeugleiste Editor auf Bearbeitung beenden und Änderungen speichern, um die Änderungen zu übernehmen.

Artikel-ID:000016100

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen