Transpose Fields (Data Management)

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

Transpose data values stored in columns of a table or feature class into rows
Transpose data values stored in columns of a table or feature class into rows.

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.

Parameters

LabelExplanationData Type
Input Table

The input feature class or table containing data value fields to be transposed.

Table View
Fields To Transpose

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
Output Table

The output feature class or table. The output will contain a transposed field, a value field, and any number of specified attribute fields that need to be inherited from the input table.

By default the Output Table is a table. The output will be a feature class when the Input Table is a feature class and the Shape field is selected in the Attribute Fields parameter.

Table
Transposed Field

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
Value Field

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
(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

arcpy.management.TransposeFields(in_table, in_field, out_table, in_transposed_field_name, in_value_field_name, {attribute_fields})
NameExplanationData Type
in_table

The input feature class or table containing data value fields to 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 specified attribute fields 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