方法

ArcGIS Pro で ArcPy を使用してすべての数値属性フィールド値の合計を計算する

Last Published: April 7, 2023

サマリー

ArcGIS Pro では、フィールド演算 (Calculate Field) ツールの sum() 関数を使用して、数値フィールドのリストから各レコードの合計を計算できます。 ただし、フィーチャクラスまたはテーブルに多数のフィールドが含まれている場合、すべての数値フィールドを手動で選択することは非現実的です。

この記事に記載されている ArcPy スクリプトを使用して、フィーチャクラスまたはテーブル内のすべての数値フィールドの値の合計を計算できます。

この例では、次の図に示すように、「Point1」フィーチャクラスには 5 つの数値フィールドがあります。

ArcGIS Pro での Point1 フィーチャクラスの属性フィールド。

手順

  1. ArcGIS Pro の解析タブで、Python の横の下矢印をクリックし、Python ウィンドウをクリックします。
  2. Python ウィンドウで、以下の Python スクリプトを入力します。 <パス> をフィーチャクラスまたはテーブルへのパスに置き換えます。
import arcpy

# Set the path to the feature class or the table
table = r""

# Add a new field to the table
arcpy.management.AddField(table, "SumField", "DOUBLE")

# Use UpdateCursor to iterate through the rows of the table
with arcpy.da.UpdateCursor(table, "*") as cursor:
    for row in cursor:
        # Initialize a variable to store the sum
        total = 0
        # Iterate through each field in the row
        for i in range(len(row)):
            # Check if the field is numeric and not OBJECTID, Shape_Length, and Shape_Area
            if isinstance(row[i], (int, float, complex)) and cursor.fields[i] not in ['OBJECTID', 'Shape_Length', 'Shape_Area']:
                # Add the field's value to the total
                total += row[i]
        # Update the new field with the total
        row[cursor.fields.index('SumField')] = total
        cursor.updateRow(row)
  1. スクリプトの末尾にカーソルを置き、Enter キーを 2 回押します。

各フィーチャの数値フィールドの合計が、新しいフィールド「SumField」に入力されました。

Point1 フィーチャクラスの属性フィールドと、ArcPy スクリプトの結果を含む新しいフィールド。

記事 ID: 000029132

新しい問題や一般的な問題に対する通知とソリューションの受け取り

新しい AI チャットボットから、要約された回答とビデオソリューションを入手してください。

Esri Support アプリのダウンロード

関連情報

このトピックについてさらに調べる

ArcGIS エキスパートのサポートを受ける

テクニカル サポートへのお問い合わせ

Esri Support アプリのダウンロード

ダウンロード オプションに移動