描述
将分类值(字符串、整数或日期)转换为多个数值字段,每个字段表示一个类别。编码的数值字段可用于大多数数据科学和统计工作流,包括回归模型。
插图
使用方法
该工具支持以下编码方法:
- 一热 - 将每个分类值转换为新列,并分配 0 或 1。其中 1 表示存在该分类值。
- 一冷 - 将每个分类值转换为新列,并分配 0 或 1。其中 0 表示存在该分类值。
- 时间 - 根据时间步间隔将字段中的每个日期值转换为整数值(0、1、2等)。属于同一时间步间隔的所有日期使用同一整数进行编码。使用时间方法时,将创建三个字段: 包含编码时间步的时间步字段、包含时间间隔的开始时间的开始时间字段,以及包含时间间隔的结束时间的结束时间字段。
该工具会修改输入数据,并将新的编码字段追加到输入表或要素类中。
如果将编码方法参数设置为一热或一冷方法,字段数将等于选择编码的字段中的分类值数(包括文本和整数)。如果使用时间编码方法,将根据时间步间隔参数值创建时间步间隔,并创建三个字段,分别包含时间步、开始时间和结束时间。
仅当将编码方法参数设置为时间方法时,时间步间隔参数才使用。时间值将聚合到该时间范围内的时间步中。时间步间隔的单位可以是秒、分钟、小时、天、周、月或年。
时间步对齐参数用于定义如何基于给定时间步间隔进行聚合。结束时间选项用于将时间步与最后一个时间事件对齐,并向后聚合时间。开始时间选项用于将时间步与第一个时间事件对齐,并向前聚合时间。参考时间选项用于指定时间步对齐到的特定日期和时间。
语法
arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
参数 | 说明 | 数据类型 |
in_table | 包含要编码的字段的输入表或要素类。字段将添加到现有输入表,并且不会创建新的输出表。 | Table View; Raster Layer; Mosaic Layer |
field | 包含要编码的分类值或时间值的字段。 | Field |
method (可选) | 指定用于对要编码的字段参数中包含的值进行编码的方法。
| String |
time_step_interval (可选) | 用来表示单个时间步长的秒数、分钟数、小时数、天数、周数或年数。时间值将聚合到其所在范围内的某一时间步中。如果未提供任何值,默认时间步间隔将基于两种算法,来确定时间步间隔的最佳数量和宽度。将使用两个结果中的较小者作为时间步间隔。 | Time Unit |
time_step_alignment (可选) | 指定如何根据时间步间隔参数值进行聚合。
| String |
reference_time (可选) | 时间间隔将对齐到的日期和时间。例如,要按星期从星期一至星期天对数据进行图格组合,将星期天的午夜设置为参考时间,以确保时间步在星期天和星期一之间的午夜进行划分。 该值可以是日期和时间值或仅为日期值;不能仅为时间。预期格式由计算机的区域时间设置确定。 | Date |
派生输出
名称 | 说明 | 数据类型 |
updated_table | 包含添加的已编码字段的表。 | 表视图 |
代码示例
以下 Python 窗口脚本演示了如何使用 EncodeField 工具。
arcpy.management.EncodeField("San_Francisco_Crimes",
"Category", "ONEHOT", '', None, "END_TIME")
以下独立 Python 脚本演示了如何使用 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())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是