Feld codieren (Datenmanagement)

Zusammenfassung

Mit diesem Werkzeug werden Kategoriewerte (Zeichenfolgen, ganze Zahlen oder Datumsangaben) im mehrere numerische Felder konvertiert, die jeweils eine Kategorie darstellen. Die codierten numerischen Felder können in den meisten Data Science-Workflows und statistischen Workflow wie etwa in Regressionsmodellen verwendet werden.

Abbildung

Abbildung: Feld codieren (Werkzeug)

Verwendung

  • Das Werkzeug unterstützt die folgenden Encodierungsmethoden:

    • One-Hot: Konvertiert die einzelnen Kategoriewerte in eine neue Spalte und weist 0 oder 1 zu, wobei 1 für das Vorhandensein dieses Kategoriewertes steht.
    • One-Cold: Konvertiert die einzelnen Kategoriewerte in eine neue Spalte und weist 0 oder 1 zu, wobei 0 für das Vorhandensein dieses Kategoriewertes steht.
    • Zeitbezogen: Konvertiert die einzelnen Datumswerte im Feld je nach Zeitschrittintervall in ganzzahlige Werte (0, 1, 2 usw.). Alle Datumsangaben in einem Zeitschrittintervall werden zusammen mit derselben Ganzzahl codiert. Wenn Sie die Methode Zeitbezogen verwenden, werden drei Felder erstellt: ein Zeitschrittfeld, das die codierten Zeitschritte enthält, ein Startzeitfeld, das die Startzeit des Zeitintervalls enthält, und ein Endzeitfeld, das die Endzeit des Zeitintervalls enthält.

  • Mit dem Werkzeug werden die Eingabedaten geändert und die neu codierten Felder an die Eingabetabelle oder -Feature-Class angehängt.

  • Wenn Sie die Methode One-Hot oder One-Cold für den Parameter Encodierungsmethode verwenden, entspricht die Anzahl der Felder der Anzahl der Kategoriewerte in dem Feld, das Sie für die Encodierung auswählen (auch in Text- und Ganzzahlfeldern). Wenn Sie die Encodierungsmethode Zeitbezogen verwenden, werden basierend auf dem Parameterwert Zeitschrittintervall Intervalle von Zeitschritten erstellt. Zudem werden drei Felder erstellt, die den Zeitschritt, die Start- bzw. die Endzeit enthalten.

  • Der Parameter Zeitschrittintervall kann nur verwendet werden, für den Parameter Encodierungsmethode die Methode Zeitbezogen ausgewählt wird. Der Zeitwert wird in einen Zeitschritt aggregiert, der die Zeit enthält. Das Zeitschrittintervall kann in Sekunden, Minuten, Stunden, Tagen, Wochen, Monaten oder Jahren angegeben werden.

  • Mit dem Parameter Zeitschrittausrichtung wird festgelegt, wie die Aggregation basierend auf einem bestimmten Zeitschrittintervall erfolgt. Mit der Option Endzeit wird der Zeitschritt am letzten Zeitereignis ausgerichtet und in der Zeit zurück aggregiert. Mit der Option Startzeit werden Zeitschritte am ersten Zeitereignis ausgerichtet und in der Zeit vorwärts aggregiert. Mithilfe der Option Bezugszeit können Sie ein bestimmtes Datum und eine bestimmte Uhrzeit angeben, zu der die Zeitschritte ausgerichtet werden.

    Weitere Informationen zur Zeitschrittausrichtung

Parameter

BeschriftungErläuterungDatentyp
Eingabetabelle

Die Eingabetabelle oder -Feature-Class mit dem Feld, das codiert werden soll. Felder werden der vorhandenen Eingabetabelle hinzugefügt. Es wird keine neue Ausgabetabelle erstellt.

Table View; Raster Layer; Mosaic Layer
Feld, das codiert werden soll

Das Feld, das die Kategorie- oder Zeitwerte enthält, die codiert werden sollen.

Field
Encodierungsmethode
(optional)

Gibt die Methode an, die zum Codieren der im Parameter Feld, das codiert werden soll enthaltenen Werte verwendet werden soll.

  • One-HotDie einzelnen Kategoriewerte werden in ein neues Feld konvertiert, und die Werte 0 und 1 werden zugewiesen, wobei 1 für das Vorhandensein dieses Kategoriewertes steht. Dies ist die Standardeinstellung.
  • One-Cold Die einzelnen Kategoriewerte werden in ein neues Feld konvertiert, und die Werte 0 und 1 werden zugewiesen, wobei 0 für das Vorhandensein dieses Kategoriewertes steht.
  • ZeitbezogenDie einzelnen Zeitwerte im Parameter Feld, das codiert werden soll werden basierend auf dem Zeitschrittintervall, der Zeitschrittausrichtung und der angegeben Bezugszeit in eine ganze Zahl konvertiert.
String
Zeitschrittintervall
(optional)

Die Anzahl der Sekunden, Minuten, Stunden, Tage, Wochen oder Jahre, die einen Zeitschritt darstellen. Der Zeitwert wird in einen bestimmten Zeitschritt aggregiert, in dem er enthalten ist. Wenn kein Wert angegeben wird, basiert das Standard-Zeitschrittintervall auf zwei Algorithmen, mit denen die optimale Anzahl und der optimale Abstand der Zeitschrittintervalle bestimmt werden. Das kleinere der beiden Ergebnisse wird als Zeitschrittintervall verwendet.

Time Unit
Zeitschrittausrichtung
(optional)

Gibt an, wie die Aggregation basierend auf dem Parameterwert für Zeitschrittintervall erfolgt.

  • Endzeit Zeitschritte werden auf das letzte Zeitereignis ausgerichtet und in der Zeit zurück aggregiert. Dies ist die Standardeinstellung.
  • Startzeit Zeitschritte werden auf das erste Zeitereignis ausgerichtet und in der Zeit vorwärts aggregiert.
  • Bezugszeit Zeitschritte werden an den im Parameter Bezugszeit angegebenen Datums- und Uhrzeitangaben ausgerichtet. Die Aggregation wird mit einer zeitlichen Ausrichtung in die Zukunft und Vergangenheit ab der Bezugszeit ausgeführt, bis der erste oder letzte Zeitwert erreicht wird.
String
Bezugszeit
(optional)

Das Datum und die Uhrzeit, an dem bzw. der die Zeitschrittintervalle ausgerichtet werden. Beispiel: Wenn Sie Ihre Daten in wöchentliche Abschnitte, beispielsweise von Montag bis Sonntag, unterteilen möchten, können Sie eine Bezugszeit von Sonntag bis Mitternacht festlegen, um sicherzustellen, dass die Zeitintervalle zwischen Sonntag und Montag um Mitternacht unterbrochen werden.

Bei dem Wert kann es sich um ein Datum und eine Uhrzeit oder nur um ein Datum, jedoch nicht nur um eine Uhrzeit handeln. Das erwartete Format wird durch die regionalen Zeiteinstellungen des Computers bestimmt.

Date

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierte Eingabetabelle

Die Tabelle, die die hinzugefügten Felder enthält, die codiert wurden.

Tabellensicht

arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
NameErläuterungDatentyp
in_table

Die Eingabetabelle oder -Feature-Class mit dem Feld, das codiert werden soll. Felder werden der vorhandenen Eingabetabelle hinzugefügt. Es wird keine neue Ausgabetabelle erstellt.

Table View; Raster Layer; Mosaic Layer
field

Das Feld, das die Kategorie- oder Zeitwerte enthält, die codiert werden sollen.

Field
method
(optional)

Gibt die Methode an, die zum Codieren der im Parameter Feld, das codiert werden soll enthaltenen Werte verwendet werden soll.

  • ONEHOTDie einzelnen Kategoriewerte werden in ein neues Feld konvertiert, und die Werte 0 und 1 werden zugewiesen, wobei 1 für das Vorhandensein dieses Kategoriewertes steht. Dies ist die Standardeinstellung.
  • ONECOLD Die einzelnen Kategoriewerte werden in ein neues Feld konvertiert, und die Werte 0 und 1 werden zugewiesen, wobei 0 für das Vorhandensein dieses Kategoriewertes steht.
  • TEMPORALDie einzelnen Zeitwerte im Parameter Feld, das codiert werden soll werden basierend auf dem Zeitschrittintervall, der Zeitschrittausrichtung und der angegeben Bezugszeit in eine ganze Zahl konvertiert.
String
time_step_interval
(optional)

Die Anzahl der Sekunden, Minuten, Stunden, Tage, Wochen oder Jahre, die einen Zeitschritt darstellen. Der Zeitwert wird in einen bestimmten Zeitschritt aggregiert, in dem er enthalten ist. Wenn kein Wert angegeben wird, basiert das Standard-Zeitschrittintervall auf zwei Algorithmen, mit denen die optimale Anzahl und der optimale Abstand der Zeitschrittintervalle bestimmt werden. Das kleinere der beiden Ergebnisse wird als Zeitschrittintervall verwendet.

Time Unit
time_step_alignment
(optional)

Gibt an, wie die Aggregation basierend auf dem Parameterwert für Zeitschrittintervall erfolgt.

  • END_TIME Zeitschritte werden auf das letzte Zeitereignis ausgerichtet und in der Zeit zurück aggregiert. Dies ist die Standardeinstellung.
  • START_TIME Zeitschritte werden auf das erste Zeitereignis ausgerichtet und in der Zeit vorwärts aggregiert.
  • REFERENCE_TIME Zeitschritte werden an den im Parameter Bezugszeit angegebenen Datums- und Uhrzeitangaben ausgerichtet. Die Aggregation wird mit einer zeitlichen Ausrichtung in die Zukunft und Vergangenheit ab der Bezugszeit ausgeführt, bis der erste oder letzte Zeitwert erreicht wird.
String
reference_time
(optional)

Das Datum und die Uhrzeit, an dem bzw. der die Zeitschrittintervalle ausgerichtet werden. Beispiel: Wenn Sie Ihre Daten in wöchentliche Abschnitte, beispielsweise von Montag bis Sonntag, unterteilen möchten, können Sie eine Bezugszeit von Sonntag bis Mitternacht festlegen, um sicherzustellen, dass die Zeitintervalle zwischen Sonntag und Montag um Mitternacht unterbrochen werden.

Bei dem Wert kann es sich um ein Datum und eine Uhrzeit oder nur um ein Datum, jedoch nicht nur um eine Uhrzeit handeln. Das erwartete Format wird durch die regionalen Zeiteinstellungen des Computers bestimmt.

Date

Abgeleitete Ausgabe

NameErläuterungDatentyp
updated_table

Die Tabelle, die die hinzugefügten Felder enthält, die codiert wurden.

Tabellensicht

Codebeispiel

EncodeField – Beispiel 1 (Python-Fenster)

Das folgende Skript veranschaulicht die Verwendung des Werkzeugs EncodeField im Python-Fenster.


arcpy.management.EncodeField("San_Francisco_Crimes", 
                    "Category", "ONEHOT", '', None, "END_TIME")
EncodeField – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Python-Skript veranschaulicht, wie Sie das Werkzeug EncodeField verwenden.


# Import system modules.
import arcpy
try:
    # Set the workspace and input features.
    arcpy.env.workspace = r"C:\\Encoded\\MyData.gdb"
    inputFeatures = 'San_Francisco_Crimes'
    # Set input features, dependent variable, and explanatory variable.
    in_table = 'San_Francisco_Crimes'
    field = 'Dates'
    # Set encoding Method
    encoding_method = "TEMPORAL"
    # Set time Step Interval
    time_step_interval = '1 Days'
    # Set Time Step Alignment
    time_step_alignment = "START_TIME"
    # Run Encode Field Tool.
    arcpy.management.EncodeField(in_table, field, encoding_method, 
                    None, time_step_interval, time_step_alignment)
except arcpy.ExecuteError:
    # If an error occurred when running the tool, print the error message.
    print(arcpy.GetMessages())

Umgebungen