Codificar campo (Administración de datos)

Resumen

Convierte valores de categorías (cadena de caracteres, entero o fecha) en varios campos numéricos, cada uno de los cuales representa una categoría. Los campos numéricos codificados se pueden utilizar en la mayoría de flujos de trabajo estadísticos y de ciencia de datos, incluidos los modelos de regresión.

Ilustración

Ilustración de la herramienta Codificar campo

Uso

    Precaución:

    Esta herramienta modifica los datos de entrada. Consulte Herramientas que modifican o actualizan los datos de entrada para obtener más información y estrategias para evitar cambios de datos no deseados.

  • La herramienta admite los siguientes métodos de codificación:

    • One-hot: convierte cada valor de categoría en una nueva columna y asigna 0 o 1, donde 1 representa la presencia de ese valor de categoría.
    • One-cold: convierte cada valor de categoría en una nueva columna y asigna 0 o 1, donde 0 representa la presencia de ese valor de categoría.
    • Temporal: convierte cada valor de fecha del campo a codificar en valores enteros (0, 1, 2, etc.) en función del intervalo de periodo de tiempo. Todas las fechas que están en el mismo intervalo de periodo de tiempo se codifican juntas con el mismo entero. Se crearán tres campos si utiliza el método Temporal: un campo de periodo de tiempo que contiene los periodos de tiempo codificados, un campo de hora de inicio que contiene la hora de inicio del intervalo de tiempo y un campo de hora de finalización que contiene la hora de finalización del intervalo de tiempo.

  • La herramienta modifica los datos de entrada e incorpora los nuevos campos codificados a la tabla o clase de entidad de entrada.

  • Cuando elige los métodos One-hot o One-cold para el parámetro Método de codificación, el número de campos será igual al número de valores de categorías del campo que elija codificar (incluido el texto y el entero). Si utiliza el método de codificación Temporal, se crean intervalos de periodos de tiempo basados en el valor del parámetro Intervalo de periodo de tiempo y se crean tres campos que contienen el periodo de tiempo, la hora de inicio y la hora de finalización.

  • El parámetro Intervalo de periodo de tiempo solo se aplica cuando se elige el método Temporal para el parámetro Método de codificación. El valor temporal se agregará a un periodo de tiempo en el que se encuentre el tiempo. La unidad del intervalo de periodo de tiempo puede ser segundos, minutos, horas, días, semanas, meses o años.

  • El parámetro Alineación de periodo de tiempo define cómo se producirá la agregación en función de un intervalo de periodo de tiempo determinado. La opción Hora de finalización alinea el periodo de tiempo con el último evento en el tiempo y lo agrega hacia atrás en el tiempo. La opción Hora de inicio alinea periodos de tiempo con el primer evento en el tiempo y los agrega hacia delante en el tiempo. La opción Tiempo de referencia le permite especificar una fecha y hora concretas con las que se alinearán los periodos de tiempo.

    Más información sobre la alineación de periodos de tiempo

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de entrada

La tabla o clase de entidad de entrada que contiene el campo que se va a codificar. Los campos se agregarán a la tabla de entrada existente y no crearán una tabla de salida nueva.

Table View; Raster Layer; Mosaic Layer
Campo a codificar

El campo que contiene los valores de categorías o temporales que se codificarán.

Field
Método de codificación
(Opcional)

Especifica el método que se utilizará para codificar los valores contenidos en el parámetro Campo a codificar.

  • One-hotCada valor de categoría se convertirá en un nuevo campo y se asignarán los valores 0 y 1, donde 1 representa la presencia de ese valor de categoría. Esta es la opción predeterminada.
  • One-coldCada valor de categoría se convertirá en un nuevo campo y se asignarán los valores 0 y 1, donde 0 representa la presencia de ese valor de categoría.
  • TemporalCada valor temporal del parámetro Campo a codificar se convertirá en un entero basado en el intervalo de periodo de tiempo, la alineación de periodo de tiempo y el tiempo de referencia especificados.
String
Intervalo de periodo de tiempo
(Opcional)

El número de segundos, minutos, horas, días, semanas o años que representará un periodo de tiempo único. El valor temporal se agregará a un periodo de tiempo determinado en el que se encuentre. Si no se proporciona ningún valor, el intervalo de periodo de tiempo predeterminado se basa en dos algoritmos que se utilizan para determinar el número y el ancho óptimos de los intervalos de periodo de tiempo. El menor de los dos resultados se utiliza como el intervalo de periodo de tiempo.

Time Unit
Alineación de periodo de tiempo
(Opcional)

Especifica cómo se producirá la agregación en función del valor del parámetro Intervalo de periodo de tiempo.

  • Tiempo finalLos periodos de tiempo se alinearán con el último evento en el tiempo y se agregarán hacia atrás en el tiempo. Esta es la opción predeterminada.
  • Tiempo inicialLos periodos de tiempo se alinearán con el primer evento en el tiempo y se agregarán hacia delante en el tiempo.
  • Tiempo de referenciaLos periodos de tiempo se alinearán con la fecha y hora especificadas en el parámetro Tiempo de referencia. La agregación se realiza hacia delante y hacia atrás en el tiempo a partir del tiempo de referencia hasta alcanzar el primer y el último valor temporal.
String
Tiempo de referencia
(Opcional)

La fecha y hora con las que se alinearán los intervalos de periodo de tiempo. Por ejemplo, para agrupar en bins los datos semanalmente de lunes a domingo, defina un tiempo de referencia de domingo a medianoche para garantizar que los periodos de tiempo se corten entre el domingo y el lunes a medianoche.

El valor puede ser una fecha y una hora, o solamente una fecha; no puede ser solamente una hora. El formato esperado está determinado por la configuración de tiempo regional del equipo.

Date

Salida derivada

EtiquetaExplicaciónTipo de datos
Tabla de entrada actualizada

La tabla que contiene los campos agregados que se codificaron.

Table View

arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
NombreExplicaciónTipo de datos
in_table

La tabla o clase de entidad de entrada que contiene el campo que se va a codificar. Los campos se agregarán a la tabla de entrada existente y no crearán una tabla de salida nueva.

Table View; Raster Layer; Mosaic Layer
field

El campo que contiene los valores de categorías o temporales que se codificarán.

Field
method
(Opcional)

Especifica el método que se utilizará para codificar los valores contenidos en el parámetro Campo a codificar.

  • ONEHOTCada valor de categoría se convertirá en un nuevo campo y se asignarán los valores 0 y 1, donde 1 representa la presencia de ese valor de categoría. Esta es la opción predeterminada.
  • ONECOLDCada valor de categoría se convertirá en un nuevo campo y se asignarán los valores 0 y 1, donde 0 representa la presencia de ese valor de categoría.
  • TEMPORALCada valor temporal del parámetro Campo a codificar se convertirá en un entero basado en el intervalo de periodo de tiempo, la alineación de periodo de tiempo y el tiempo de referencia especificados.
String
time_step_interval
(Opcional)

El número de segundos, minutos, horas, días, semanas o años que representará un periodo de tiempo único. El valor temporal se agregará a un periodo de tiempo determinado en el que se encuentre. Si no se proporciona ningún valor, el intervalo de periodo de tiempo predeterminado se basa en dos algoritmos que se utilizan para determinar el número y el ancho óptimos de los intervalos de periodo de tiempo. El menor de los dos resultados se utiliza como el intervalo de periodo de tiempo.

Time Unit
time_step_alignment
(Opcional)

Especifica cómo se producirá la agregación en función del valor del parámetro Intervalo de periodo de tiempo.

  • END_TIMELos periodos de tiempo se alinearán con el último evento en el tiempo y se agregarán hacia atrás en el tiempo. Esta es la opción predeterminada.
  • START_TIMELos periodos de tiempo se alinearán con el primer evento en el tiempo y se agregarán hacia delante en el tiempo.
  • REFERENCE_TIMELos periodos de tiempo se alinearán con la fecha y hora especificadas en el parámetro Tiempo de referencia. La agregación se realiza hacia delante y hacia atrás en el tiempo a partir del tiempo de referencia hasta alcanzar el primer y el último valor temporal.
String
reference_time
(Opcional)

La fecha y hora con las que se alinearán los intervalos de periodo de tiempo. Por ejemplo, para agrupar en bins los datos semanalmente de lunes a domingo, defina un tiempo de referencia de domingo a medianoche para garantizar que los periodos de tiempo se corten entre el domingo y el lunes a medianoche.

El valor puede ser una fecha y una hora, o solamente una fecha; no puede ser solamente una hora. El formato esperado está determinado por la configuración de tiempo regional del equipo.

Date

Salida derivada

NombreExplicaciónTipo de datos
updated_table

La tabla que contiene los campos agregados que se codificaron.

Table View

Muestra de código

Ejemplo 1 de EncodeField (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la herramienta EncodeField.


arcpy.management.EncodeField("San_Francisco_Crimes", 
                    "Category", "ONEHOT", '', None, "END_TIME")
Ejemplo 2 de EncodeField (script independiente)

El siguiente script de Python independiente muestra cómo utilizar la herramienta 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())

Entornos