转置字段 (Data Management)
摘要
将在表或要素类的字段或列中输入的数据转换到列中。
当表或要素类在字段名(如 Field1、Field2、Field3)中存储值,并且您要将字段名和字段中的相应数据值转置为行格式时,可使用该工具。
插图
用法
-
默认情况下,输出为一张表。不过,如果要对要素类中的字段进行转置,可选择输出具有转置字段的表或要素类。要输出要素类,您应在“属性字段”下选择 Shape 字段。
如果输入为要素类,则可获得要素类输出的唯一方法就是在“属性字段”参数中选择 Shape 字段。
语法
参数 | 说明 | 数据类型 |
in_table |
包含要进行转置的数据值的输入要素类或表。 | Table View |
in_field [[field, {value}],...] |
输入表中包含要进行转置的数据值的字段或列。 根据需要,可以选择多个要进行转置的字段。默认情况下,值与字段名相同。不过,也可以选择指定您自己的值。例如,如果要转置的字段的字段名是 Pop1991、Pop1992 等,默认情况下,这些字段的值将相同(Pop1991、Pop1992 等)。但也可选择指定您自己的值,如 1991 和 1992。 | Value Table |
out_table | 输出要素类或表。输出要素类或表将包含转置后的字段、值字段以及指定的需要从输入表继承的任意数量的属性字段。 除非 in_table 值为要素类,并且在 attribute_fields 参数中选择了 Shape 字段,否则,为 out_table 指定的将是一张表。 | Table |
in_transposed_field_name |
要创建的字段的名称,该字段用于存储被选择进行转置的字段的字段名值。可使用任何有效的字段名。 | String |
in_value_field_name |
要创建的值字段的名称,该字段用于存储来自输入表的值。可设置任何有效的字段名,只要它不与来自输入表或要素类的现有字段名冲突。 | String |
attribute_fields [attribute_fields,...] (可选) |
来自输入表的要被包含在输出表中的属性字段。如果要输出要素类,请选择 Shape 字段。 | Field |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用 TransposeFields 工具。
import arcpy
arcpy.TransposeFields_management("C:/Data/TemporalData.gdb/Input","Field1 newField1;Field2 newField2;Field3 newField3",
"C:/Data/TemporalData.gdb/Output_Time","Transposed_Field", "Value","Shape;Type")
以下独立脚本演示了如何使用 TransposeFields 工具。
# Name: TransposeFields_Ex_02.py
# Description: Tranpose field names from column headers to values in one column
# Requirements: None
# Import system modules
import arcpy
from arcpy import env
# set workspace
arcpy.env.workspace = "C:/Data/TemporalData.gdb"
# Set local variables
inTable = "Input"
# Specify fields to transpose
fieldsToTranspose = "Field1 newField1;Field2 newField2;Field3 newField3"
# Set a variable to store output feature class or table
outTable = "Output_Time"
# Set a variable to store time field name
transposedFieldName = "Transposed_Field"
# Set a variable to store value field name
valueFieldName = "Value"
# Specify attribute fields to be included in the output
attrFields = "Shape;Type"
# Execute TransposeTimeFields
arcpy.TransposeFields_management(inTable, fieldsToTranspose, outTable, transposedFieldName, valueFieldName, attrFields)