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
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.
Syntax
arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
Parameter | Erklärung | Datentyp |
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.
| 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.
| 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
Name | Erklärung | Datentyp |
updated_table | Die Tabelle, die die hinzugefügten Felder enthält, die codiert wurden. | Tabellensicht |
Codebeispiel
Das folgende Skript veranschaulicht die Verwendung des Werkzeugs EncodeField im Python-Fenster.
arcpy.management.EncodeField("San_Francisco_Crimes",
"Category", "ONEHOT", '', None, "END_TIME")
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
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja