Summary
Switch data stored in fields or columns to rows in a new table or feature class.
This tool is useful when your table or feature class stores values in field names (such as Field1, Field2, Field3) that you want to rotate so they're arranged in rows. It lets you switch the field names and the corresponding data values in the fields to rows.
Illustration
Usage
By default, the output is a table. When the input is a feature class and you also want the output to be a feature class, you should add the Shape field in Attribute Fields.
Syntax
TransposeFields_management (in_table, in_field, out_table, in_transposed_field_name, in_value_field_name, {attribute_fields})
Parameter | Explanation | Data Type |
in_table | The input feature class or table for which its fields containing data values will be transposed. | Table View |
in_field [[field, {value}],...] | The fields or columns containing data values in the input table that need to be transposed. Depending on your needs, you can select multiple fields to be transposed. The value here defines what the field name will be in the output. When not specified, the value is the same as the field name by default. However, you can also specify your own value. For example, if the field names to be transposed are Pop1991, Pop1992, and so on, by default, the values for these fields in the output will be the same (Pop1991, Pop1992, and so forth). However, you can choose to specify your own values such as 1991 and 1992. | Value Table |
out_table | The output feature class or table. The output will contain a transposed field, a value field, and any number of attribute fields specified that need to be inherited from the input table. By default the out_table is a table. The output will be a feature class when the in_table is a feature class and the Shape field is selected in the attribute_fields parameter. | Table |
in_transposed_field_name | The name of the field that will be created to store field names of the transposed fields. Any valid field name can be used. | String |
in_value_field_name | The name of the field that will be created to store the corresponding values of the transposed fields. Any valid field name can be set, as long as it does not conflict with existing field names from the input table or feature class. | String |
attribute_fields [attribute_fields,...] (Optional) | Additional attribute fields from the input table to be included in the output table. If you want to output a feature class, add the Shape field. | Field |
Code sample
TransposeFields example (Python window)
The following Python window script demonstrates how to use the TransposeFields tool in immediate mode.
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 example 2 (stand-alone script)
The following stand-alone script demonstrates how to use the TransposeFields tool.
# 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)
Environments
This tool does not use any geoprocessing environments.
Licensing information
- ArcGIS Desktop Basic: Yes
- ArcGIS Desktop Standard: Yes
- ArcGIS Desktop Advanced: Yes