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
Uso
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.
Sintaxis
arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
Parámetro | Explicación | Tipo 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.
| String |
time_step_interval (Opcional) | El número de segundos, minutos, horas, días, semanas o años que representará un período 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.
| 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
Nombre | Explicación | Tipo de datos |
updated_table | La tabla que contiene los campos agregados que se codificaron. | Vista de tabla |
Muestra de código
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")
El siguiente script de Phython 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
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí