ExtendTable (arcpy.da)

Summary

Joins the contents of a NumPy structured array to a table based on a common attribute field. The input table is updated to contain the fields from the join table.

Discussion

The records in the in_array are matched to the records in the in_table. A match is made when the table_match_field and array_match_table values are equal. The join is permanent.

NumPy is a fundamental package for scientific computing in Python, including support for a powerful N-dimensional array object. For more information, see Working with NumPy in ArcGIS.

Syntax

ExtendTable (in_table, table_match_field, in_array, array_match_field, {append_only})
ParameterExplanationData Type
in_table

The target table to which fields from a NumPy array will be appended.

String
table_match_field

Field name from in_table to use as a match to the array.

String
in_array

NumPy structured array to be appended to in_table.

Matching in_array field values must be unique.

NumPyArray
array_match_field

Field name from in_array to use to match.

String
append_only

Controls how fields are added or updated in the existing table.

If True, fields will be appended to the existing table only. If any of NumPy field names exist already in the in_table, ExtendTable will fail.

If False, existing fields will be updated if they share a common field name with fields in the NumPy array. Any matching fields must have a compatible field type. For example, a NumPy string field cannot be appended into a numeric field.

(The default value is True)

Boolean

Code Sample

Use ExtendTable to join a NumPy array to an existing table.

import arcpy
import numpy

# numpy array
#
array = numpy.array([(1, 'a', 1111.0), (2, 'b', 2222.22)],
                    numpy.dtype([('idfield',numpy.int32),
                                 ('textfield', '|S256'),
                                 ('doublefield','<f8')]))

# Append the array to an existing table
#
arcpy.da.ExtendTable("c:/data/base.gdb/current_table", 
                     "tableid", 
                     array, 
                     "idfield")

Related Topics

4/16/2013