統計サマリー (Summary Statistics) (解析)

サマリー

テーブル内のフィールドの統計サマリーを求めます。

使用法

  • 出力は、統計演算の結果を含むフィールドで構成されます。

  • このツールで実行できる統計演算は、合計、平均、最小、最大、範囲、標準偏差、個数、最初、最後、中央値、分散、一意の値、連結、および最頻値です。

  • [ケース フィールド] パラメーターが指定されている場合、統計は一意のフィールド値別に計算されます。 そのため、出力テーブルには、フィールド値のセットごとに 1 レコードが含まれます。 [ケース フィールド] パラメーターが指定されていない場合、統計はすべての入力レコードに対して計算されます。 そのため、出力テーブルには 1 レコードが含まれます。

    出力の Frequency フィールドは、一意のフィールド値で表されるすべての入力レコードの個数です。 [ケース フィールド] パラメーターが指定されていない場合、すべての入力レコードの個数になります。

  • 統計タイプごとに、次の命名規則を使用してフィールドが作成されます。SUM_<field>MEAN_<field>MIN_<field>MAX_<field>RANGE_<field>STD_<field>COUNT_<field>FIRST_<field>LAST_<field>MEDIAN_<field>VARIANCE_<field>UNIQUE_<field>CONCATENATE_<field>DBMS_SUM_<field>DBMS_MEAN_<field>DBMS_MIN_<field>DBMS_MAX_<field>DBMS_STD_<field>DBMS_COUNT_<field>DBMS_MEDIAN_<field>、および DBMS_VARIANCE_<field> (<field> は統計量を計算する入力フィールドの名前)。 出力テーブルが dBASE である場合、フィールド名は 10 文字に切詰められます。

  • DBMS 統計タイプを使用し、クライアント上ではなく、データベースまたはサービスで統計を直接処理します。 DBMS 統計タイプは、エンタープライズ ジオデータベース、フィーチャ サービス、クラウド データ ウェアハウス、GeoPackage、および SQLite ジオデータベースなどの入力ジオデータベース データ ソースに対してのみサポートされます。

    DBMS 統計タイプは dBASE 出力をサポートしていません。

  • すべての統計計算から NULL 値が除外されます。 たとえば、6、4、および NULL 値の平均は 5 ((6+4)/2) です。

  • レイヤーを使用する場合、統計の計算には現在選択されているフィーチャだけが使用されます。

パラメーター

ラベル説明データ タイプ
入力テーブル

統計の計算に使用するフィールドを含む入力テーブル。

Table View; Raster Layer
出力テーブル

計算された統計を格納する出力テーブル。

Table
統計フィールド

特定の統計の計算に使用される属性値を含むフィールド (複数可) を指定します。 複数の統計とフィールドの組み合わせを指定できます。 すべての計算から NULL 値が除外されます。

数値属性フィールドは、任意の統計を使用して集計されます。 テキスト属性フィールドは、最小、最大、個数、最初、最後、一意の値、連結、および最頻値の統計を使用して集計されます。 Date、Data Only、Timestamp Offset 属性フィールドは、平均、最小、最大、個数、最初、最後、一意の値、および連結の統計のみを使用して集計されます。

DBMS 統計タイプは、エンタープライズ ジオデータベース、フィーチャ サービス、クラウド データ ウェアハウス、SQLite ジオデータベースなどの入力ジオデータベース データ ソースに対してのみサポートされます。

  • [合計] - 指定したフィールドの値が加算されます。
  • [平均] - 指定したフィールドの平均が計算されます。
  • [最小] - 指定したフィールドの最小値が特定されます。
  • [最大] - 指定したフィールドの最大値が特定されます。
  • [範囲] - 指定したフィールドの値の範囲 (最大 - 最小) が計算されます。
  • [標準偏差] - 指定したフィールド内の値の標準偏差が計算されます。
  • [個数] - 指定したフィールド内の値の数が特定されます。
  • [最初] - 入力の最初のレコードの指定したフィールドの値を使用します。
  • [最後] - 入力の最後のレコードの指定したフィールドの値を使用します。
  • [中央値] - 指定したフィールドの中央値が計算されます。
  • [分散] - 指定したフィールドの分散が計算されます。
  • [一意の値] - 指定したフィールドの一意の値の数を数えます。
  • [連結] - 指定したフィールドの値を連結します。 この値は、[連結区切り文字] パラメーターを使用して区切ることができます。
  • [最頻値] - 指定したフィールドの最頻値 (最も一般的な値) が特定されます。 同等に一般的な値が複数ある場合は、最も低い値が返されます。
  • [DBMS 合計] - 指定したフィールドの値が加算されます。
  • [DBMS 平均] - 指定したフィールドの平均が計算されます。
  • [DBMS 最小] - 指定したフィールドの最小値が特定されます。
  • [DBMS 最大] - 指定したフィールドの最大値が特定されます。
  • [DBMS 標準偏差] - 指定したフィールド内の値の標準偏差が計算されます。
  • [DBMS 個数] - 指定したフィールド内の値の数が特定されます。
  • [DBMS 中央値] - 指定したフィールドの中央値が計算されます。
  • [DBMS 分散] - 指定したフィールドの分散が計算されます。
Value Table
ケース フィールド
(オプション)

一意の属性値 (または、複数フィールドが指定された場合には属性値の組み合わせ) ごとに、統計を個別に計算するために使用される、入力のフィールド (1 つまたは複数)。

Field
連結区切り文字
(オプション)

[連結] オプションを [統計フィールド] パラメーターに使用した場合に、値の連結に使用する文字。 デフォルトでは、ツールは区切り文字なしで値を連結します。

String

arcpy.analysis.Statistics(in_table, out_table, statistics_fields, {case_field}, {concatenation_separator})
名前説明データ タイプ
in_table

統計の計算に使用するフィールドを含む入力テーブル。

Table View; Raster Layer
out_table

計算された統計を格納する出力テーブル。

Table
statistics_fields
[[field, {statistic_type}],...]

特定の統計の計算に使用される属性値を含むフィールド (複数可) を指定します。 複数の統計とフィールドの組み合わせを指定できます。 すべての計算から NULL 値が除外されます。

数値属性フィールドは、任意の統計を使用して集計されます。 テキスト属性フィールドは、最小、最大、個数、最初、最後、一意の値、連結、および最頻値の統計を使用して集計されます。 Date、Data Only、Timestamp Offset 属性フィールドは、平均、最小、最大、個数、最初、最後、一意の値、および連結の統計のみを使用して集計されます。

DBMS 統計タイプは、エンタープライズ ジオデータベース、フィーチャ サービス、クラウド データ ウェアハウス、SQLite ジオデータベースなどの入力ジオデータベース データ ソースに対してのみサポートされます。

  • SUM - 指定したフィールドの値が合計されます。
  • MEAN - 指定したフィールドの平均が計算されます。
  • MIN - 指定したフィールドの値が合計されます。
  • MAX - 指定したフィールドの最大値が特定されます。
  • RANGE - 指定したフィールドの値の範囲 (最大 - 最小) が計算されます。
  • STD - 指定したフィールド内の値の標準偏差が計算されます。
  • COUNT - 指定したフィールド内の値の数が特定されます。
  • FIRST - 入力の最初のレコードの指定したフィールドの値を使用します。
  • LAST - 入力の最後のレコードの指定したフィールドの値を使用します。
  • MEDIAN - 指定したフィールドの中央値が計算されます。
  • VARIANCE - 指定したフィールドの分散が計算されます。
  • UNIQUE - 指定したフィールドの一意の値の数を数えます。
  • CONCATENATE - 指定したフィールドの値を連結します。 この値は、concatenation_separator パラメーターを使用して区切ることができます。
  • MODE - 指定したフィールドの最頻値 (最も一般的な値) が特定されます。 同等に一般的な値が複数ある場合は、最も低い値が返されます。
  • DBMS_SUM - 指定したフィールドの値が合計されます。
  • DBMS_MEAN - 指定したフィールドの平均が計算されます。
  • DBMS_MIN - 指定したフィールドの値が合計されます。
  • DBMS_MAX - 指定したフィールドの最大値が特定されます。
  • DBMS_STD - 指定したフィールド内の値の標準偏差が計算されます。
  • DBMS_COUNT - 指定したフィールド内の値の数が特定されます。
  • DBMS_MEDIAN - 指定したフィールドの中央値が計算されます。
  • DBMS_VARIANCE - 指定したフィールドの分散が計算されます。
Value Table
case_field
[case_field,...]
(オプション)

一意の属性値 (または、複数フィールドが指定された場合には属性値の組み合わせ) ごとに、統計を個別に計算するために使用される、入力のフィールド (1 つまたは複数)。

Field
concatenation_separator
(オプション)

CONCATENATION オプションを statistics_fields パラメーターに使用した場合に、値の連結に使用する文字。 デフォルトでは、ツールは区切り文字なしで値を連結します。

String

コードのサンプル

Statistics の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで Statistics 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.analysis.Statistics("futrds", "C:/output/output.gdb/stats", [["Shape_Length", "SUM"]], "NM")
Statistics の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、幹線道路から 150 フィート以内の領域の植生に関するデータを集計します。

# Description: Summarize the vegetation by area within 150 feet of major roads.

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"

# Set local variables
inRoads = "majorrds.shp"
outBuffer = "C:/output/output.gdb/buffer_out"
bufferDistance = "250 feet"
inVegetation = "Habitat_Analysis.gdb/vegtype"
outClip = "C:/output/output.gdb/clip_out"
joinField = "HOLLAND95"
joinTable = "c:/data/vegtable.dbf"
joinedField = "HABITAT"
outStatsTable = "C:/output/output.gdb/stats_out"
statsFields = [["Shape_Area", "SUM"]]

# Run Buffer to get a buffer of major roads
arcpy.analysis.Buffer(inRoads, outBuffer, bufferDistance, dissolve_option="ALL")

# Run Clip using the buffer output to get a clipped feature class of 
# vegetation
arcpy.analysis.Clip(inVegetation, outBuffer, outClip)

# Run JoinField to add the vegetation type
arcpy.management.JoinField(outClip, joinField, joinTable, joinField, joinedField)

# Run Statistics to get the area of each vegetation type within the 
# clipped buffer.
arcpy.analysis.Statistics(outClip, outStatsTable, statsFields, joinedField)
Statistics の例 3 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、データセットの属性フィールドをループ処理して、statistics_fields パラメーターを作成し、その結果、SUM 統計が各数値フィールドで計算されます。


# Description: Script that runs the Summary Statistics tool to calculate the
#              Sum statistic for every numeric field based on a unique case 
#              field.

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/f.gdb"

# Set local variables
intable = "intable"
outtable = "sumstats"
casefield = "Name"
stats = []

# Loop through all fields in the Input Table
for field in arcpy.ListFields(intable):

    # Find the fields that have a numeric type
    if field.type in ("Double", "Integer", "Single", "SmallInteger"):
        # Add the field name and Sum statistic type to the list of fields to 
        # summarize
        stats.append([field.name, "Sum"])
# Correct formatting of stats [["Field1", "Sum"], ["Field2", "Sum"], ...]

# Run Statistics with the stats list
arcpy.analysis.Statistics(intable, outtable, stats, casefield)
Statistics の例 4 (スタンドアロン スクリプト)

次のスクリプトは、pandas DataFrame を使用して、Statistics 関数の結果表にアクセスし、これを表示します。

import arcpy
import pandas
import os

arcpy.env.overwriteOutput = True

in_table = r"d:\data\states.shp"
out_table = r"in_memory\stats_table"
stat_fields = [['POP1990', 'SUM'], ['POP1997', 'SUM']]

stats = arcpy.analysis.Statistics(in_table, out_table, stat_fields,
                                  case_field='SUB_REGION')

# Get a list of field names to display
field_names = [i.name for i in arcpy.ListFields(out_table) if i.type != 'OID']

# Open a cursor to extract results from stats table
cursor = arcpy.da.SearchCursor(out_table, field_names)

# Create a pandas DataFrame to display results
df = pandas.DataFrame(data=[row for row in cursor],
                      columns=field_names)

print(df)

環境

特殊なケース

タイム ゾーン

Timestamp Offset フィールドで統計の種類が平均の場合に、この環境からのタイムゾーン オフセットが使用されます。

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック