Encoder un champ (Gestion des données)

Synthèse

Convertit des valeurs de catégorie (chaîne, entier ou date) en plusieurs champs numériques représentant chacun une catégorie. Les champs numériques encodés peuvent être utilisés dans la plupart des processus de science des données et statistiques, y compris les modèles de régression.

Illustration

Illustration de l’outil Encoder un champ

Utilisation

    Attention :

    Cet outil modifie les données en entrée. Pour plus d’informations et connaître les stratégies permettant d’empêcher les modifications de données indésirables, reportez-vous à la rubrique Outils qui modifient ou mettent à jour les données en entrée.

  • Cet outil prend en charge les méthodes d’encodage suivantes :

    • One-hot : convertit chaque valeur de catégorie en une nouvelle colonne et affecte la valeur 0 ou 1, où 1 indique la présence de cette valeur de catégorie.
    • One-cold : convertit chaque valeur de catégorie en une nouvelle colonne et affecte la valeur 0 ou 1, où 0 indique la présence de cette valeur de catégorie.
    • Temporal (Temporelle) : convertit chaque valeur de date du champ pour l’encoder en valeur entière (0, 1, 2, etc.) en fonction de l’intervalle temporel. Toutes les dates comprises dans le même intervalle temporel sont encodées ensemble avec le même entier. Si vous utilisez la méthode Temporelle, trois champs sont créés : un champ d’intervalle temporel qui contient les intervalles encodés, un champ temporel de début qui contient l’heure de début de l’intervalle temporel, et un champ temporel de fin qui contient l’heure de fin de l’intervalle temporel.

  • Cet outil modifie les données en entrée et ajoute les nouveaux champs encodés à la table ou la classe d’entités en entrée.

  • Lorsque vous sélectionnez la méthode One-hot ou One-cold pour le paramètre Encoding Method (Méthode d’encodage), le nombre de champs est égal au nombre de valeurs de catégorie dans le champ sélectionné pour l’encodage (y compris les valeurs de texte et entières). Si vous utilisez la méthode d’encodage Temporal (Temporelle), des intervalles temporels sont créés, en fonction de la valeur du paramètre Time Step Interval (Intervalle temporel) et trois champs sont créés, contenant l’intervalle temporel, l’heure de début et l’heure de fin.

  • Le paramètre Time Step Interval (Intervalle temporel) n’est applicable que lorsque la méthode Temporal (Temporelle) est sélectionnée pour le paramètre Encoding Method (Méthode d’encodage). La valeur temporelle sera agrégée dans un intervalle temporel auquel l’heure appartient. L’unité de l’intervalle temporel peut être la seconde, la minute, l’heure, le jour, la semaine, le mois ou l’année.

  • Le paramètre Time Step Alignment (Alignement d’intervalle temporel) définit la façon dont l’agrégation sera effectuée selon un intervalle temporel donné. L’option End time (Heure de fin) aligne l’intervalle temporel sur le dernier événement temporel et effectue une agrégation en arrière dans le temps. L’option Start time (Heure de début) aligne l’intervalle temporel sur le premier événement temporel et effectue une agrégation en avant dans le temps. L’option Reference time (Référence temporelle) permet de spécifier une date et une heure données sur lesquelles aligner les intervalles temporels.

    En savoir plus sur l’alignement des intervalles temporels

Paramètres

ÉtiquetteExplicationType de données
Table en entrée

Classe d’entités ou table en entrée qui contient le champ à encoder. Les champs sont ajoutés à la table en entrée existante ; aucune table en sortie n’est créée.

Table View; Raster Layer; Mosaic Layer
Champ à encoder

Champ contenant les valeurs de catégorie ou temporelles à encoder.

Field
Méthode d’encodage
(Facultatif)

Spécifie la méthode à utiliser pour encoder les valeurs présentes dans le paramètre Field to Encode (Champ à encoder).

  • One-hotChaque valeur de catégorie est convertie en nouveau champ et les valeurs 0 et 1 sont affectées, où 1 indique la présence de cette valeur de catégorie. Il s’agit de l’option par défaut.
  • One-coldChaque valeur de catégorie est convertie en nouveau champ et les valeurs 0 et 1 sont affectées, où 0 indique la présence de cette valeur de catégorie.
  • TemporelChaque valeur temporelle du paramètre Field to Encode (Champ à encoder) est convertie en entier, selon l’intervalle temporel, l’alignement d’intervalle temporel et la référence temporelle spécifiés.
String
Intervalle temporel
(Facultatif)

Nombre de secondes, minutes, heures, jours, semaines ou années qui représenteront un intervalle temporel. La valeur temporelle sera agrégée dans un intervalle temporel auquel elle appartient. Si aucune valeur n’est indiquée, l’intervalle temporel par défaut est basé sur deux algorithmes permettant de déterminer la largeur et le nombre optimal d’intervalles temporels. Le plus petit des deux résultats est utilisé comme intervalle temporel.

Time Unit
Alignement de l’intervalle temporel
(Facultatif)

Définit la manière dont l’agrégation sera effectuée en fonction de la valeur du paramètre Time Step Interval (Intervalle temporel).

  • Heure de finLes intervalles temporels sont alignés sur le dernier événement temporel et agrégés en arrière dans le temps. Il s’agit de l’option par défaut.
  • Heure de débutLes intervalles temporels sont alignés sur le premier événement temporel et agrégés en avant dans le temps.
  • Référence temporelleLes intervalles temporels s’alignent sur la date et l’heure spécifiées dans le paramètre Reference Time (Référence temporelle). L’agrégation est effectuée en avant et en arrière dans le temps, à partir de la référence temporelle, jusqu’à ce que la première et la dernière valeurs temporelles soient atteintes.
String
Référence temporelle
(Facultatif)

Date et heure sur lesquelles les intervalles temporels sont alignés. Par exemple, pour grouper vos données chaque semaine, de lundi à dimanche, définissez une référence temporelle de dimanche à minuit pour vous assurer que les intervalles temporels soient interrompus entre dimanche et lundi à minuit.

Cette valeur peut être une date et une heure, ou simplement une date, mais pas uniquement une heure. Le format attendu est fonction des paramètres régionaux de l’ordinateur.

Date

Sortie obtenue

ÉtiquetteExplicationType de données
Table en entrée mise à jour

Tableau qui contient les champs ajoutés qui ont été encodés.

Table View

arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
NomExplicationType de données
in_table

Classe d’entités ou table en entrée qui contient le champ à encoder. Les champs sont ajoutés à la table en entrée existante ; aucune table en sortie n’est créée.

Table View; Raster Layer; Mosaic Layer
field

Champ contenant les valeurs de catégorie ou temporelles à encoder.

Field
method
(Facultatif)

Spécifie la méthode à utiliser pour encoder les valeurs présentes dans le paramètre Field to Encode (Champ à encoder).

  • ONEHOTChaque valeur de catégorie est convertie en nouveau champ et les valeurs 0 et 1 sont affectées, où 1 indique la présence de cette valeur de catégorie. Il s’agit de l’option par défaut.
  • ONECOLDChaque valeur de catégorie est convertie en nouveau champ et les valeurs 0 et 1 sont affectées, où 0 indique la présence de cette valeur de catégorie.
  • TEMPORALChaque valeur temporelle du paramètre Field to Encode (Champ à encoder) est convertie en entier, selon l’intervalle temporel, l’alignement d’intervalle temporel et la référence temporelle spécifiés.
String
time_step_interval
(Facultatif)

Nombre de secondes, minutes, heures, jours, semaines ou années qui représenteront un intervalle temporel. La valeur temporelle sera agrégée dans un intervalle temporel auquel elle appartient. Si aucune valeur n’est indiquée, l’intervalle temporel par défaut est basé sur deux algorithmes permettant de déterminer la largeur et le nombre optimal d’intervalles temporels. Le plus petit des deux résultats est utilisé comme intervalle temporel.

Time Unit
time_step_alignment
(Facultatif)

Définit la manière dont l’agrégation sera effectuée en fonction de la valeur du paramètre Time Step Interval (Intervalle temporel).

  • END_TIMELes intervalles temporels sont alignés sur le dernier événement temporel et agrégés en arrière dans le temps. Il s’agit de l’option par défaut.
  • START_TIMELes intervalles temporels sont alignés sur le premier événement temporel et agrégés en avant dans le temps.
  • REFERENCE_TIMELes intervalles temporels s’alignent sur la date et l’heure spécifiées dans le paramètre Reference Time (Référence temporelle). L’agrégation est effectuée en avant et en arrière dans le temps, à partir de la référence temporelle, jusqu’à ce que la première et la dernière valeurs temporelles soient atteintes.
String
reference_time
(Facultatif)

Date et heure sur lesquelles les intervalles temporels sont alignés. Par exemple, pour grouper vos données chaque semaine, de lundi à dimanche, définissez une référence temporelle de dimanche à minuit pour vous assurer que les intervalles temporels soient interrompus entre dimanche et lundi à minuit.

Cette valeur peut être une date et une heure, ou simplement une date, mais pas uniquement une heure. Le format attendu est fonction des paramètres régionaux de l’ordinateur.

Date

Sortie obtenue

NomExplicationType de données
updated_table

Tableau qui contient les champs ajoutés qui ont été encodés.

Table View

Exemple de code

Exemple 1 d’utilisation de l’outil EncodeField (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction EncodeField.


arcpy.management.EncodeField("San_Francisco_Crimes", 
                    "Category", "ONEHOT", '', None, "END_TIME")
Exemple 2 d’utilisation de l’outil EncodeField (script autonome)

Le script Python autonome ci-dessous illustre l’utilisation de l’outil EncodeField.


# 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())

Environnements