概要
カテゴリ値 (文字列、整数、または日付) を複数の数値フィールド (それぞれが 1 つのカテゴリを表す) に変換します。エンコードされた数値フィールドは、ほとんどのデータ サイエンス ワークフローと統計ワークフロー (回帰モデルを含む) で使用できます。
図
使用法
このツールは、次のエンコード手法に対応しています。
- [One-hot] - 各カテゴリ値を新しい列に変換して 0 または 1 を割り当てます。値 1 は、そのカテゴリ値が存在することを表します。
- [One-cold] - 各カテゴリ値を新しい列に変換して 0 または 1 を割り当てます。値 0 は、そのカテゴリ値が存在することを表します。
- [時系列] - 時間ステップ間隔に基づいて、エンコードするフィールド内の各日付値を整数値 (0、1、2 など) に変換します。同じ時間ステップ間隔に含まれる日付はすべて、同じ整数と共にエンコードされます。[時系列] 手法を使用する場合は、エンコードされた時間ステップを含む時間ステップ フィールド、時間間隔の開始時間を含む開始時間フィールド、時間間隔の終了時間を含む終了時間フィールドという 3 つのフィールドが作成されます。
このツールを実行すると、入力データが変更され、新しいエンコード後のフィールドが入力テーブルまたはフィーチャクラスに追加されます。
[エンコード手法] パラメーターで [One-hot] 手法または [One-cold] 手法を選択すると、フィールドの数が、エンコード対象として選択したフィールド内のカテゴリ値 (テキストと整数を含む) の数と同じになります。[時系列] エンコード手法を使用する場合は、[時間ステップの間隔] パラメーターの値に基づいて時間ステップの間隔が生成され、時間ステップ、開始時間、および終了時間を含む 3 つのフィールドが作成されます。
[時間ステップの間隔] パラメーターを使用できるのは、[エンコード手法] パラメーターで [時系列] 手法が選択されている場合に限ります。時系列値は、時間が含まれている 1 つの時間ステップに集約されます。時間ステップ間隔の単位は、秒、分、時間、日、週、月、または年です。
[時間ステップの配列] パラメーターでは、一定の時間ステップ間隔で集約を実行する方法を定義します。[終了時間] オプションを選択すると、最後の時間イベントを基準に時間ステップが配列され、時間を遡って集約されます。[開始時間] オプションを選択すると、最初の時間イベントを基準に時間ステップが配列され、時間を前進して集約されます。[基準時間] オプションを選択すると、特定の日付と時刻を指定し、その日時を基準に時間ステップを配列することができます。
構文
arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
パラメーター | 説明 | データ タイプ |
in_table | エンコードされるフィールドを含む入力テーブルまたはフィーチャクラス。フィールドは既存の入力テーブルに追加されるため、新しい出力テーブルが作成されません。 | Table View; Raster Layer; Mosaic Layer |
field | エンコードされるカテゴリ値または時系列値を含むフィールド。 | Field |
method (オプション) | [エンコード対象フィールド] パラメーターに含まれている値のエンコードに使用する手法を指定します。
| String |
time_step_interval (オプション) | 1 つの時間ステップを表す秒、分、時間、日、週、または年の数。時系列値は、時間が含まれている特定の時間ステップに集約されます。値を指定しないと、時間ステップ間隔の最適な数と幅を決定するのに使用できる 2 つのアルゴリズムに基づいてデフォルトの時間ステップ間隔が設定されます。2 つの結果のうち、値の小さい方が時間ステップ間隔として使用されます。 | Time Unit |
time_step_alignment (オプション) | [時間ステップの間隔] パラメーターの値に基づいて集約方法を指定します。
| String |
reference_time (オプション) | 時間ステップ間隔の配列の基準となる日付と時刻。たとえば、データを月曜日から日曜日までの 1 週間でビン化するには、日曜日の基準時間を午前 0 時に設定して、時間ステップが日曜日と月曜日の間の午前 0 時に分かれるようにします。 この値として、日付と時刻または日付のみを指定することはできますが、時刻のみを指定することはできません。必要な形式は、コンピューターの地域の時間設定によって決まります。 | Date |
派生した出力
名前 | 説明 | データ タイプ |
updated_table | 追加されたエンコード済みのフィールドを含むテーブル。 | テーブル ビュー |
コードのサンプル
次の Python ウィンドウ スクリプトは、EncodeField ツールの使用方法を示しています。
arcpy.management.EncodeField("San_Francisco_Crimes",
"Category", "ONEHOT", '', None, "END_TIME")
次のスタンドアロン Python スクリプトは、EncodeField ツールの使用方法を示しています。
# Import system modules.
import arcpy
try:
# Set the workspace and input features.
arcpy.env.workspace = r"C:\\Encoded\\MyData.gdb"
inputFeatures = 'San_Francisco_Crimes'
# Set input features, dependent variable, and explanatory variable.
in_table = 'San_Francisco_Crimes'
field = 'Dates'
# Set encoding Method
encoding_method = "TEMPORAL"
# Set time Step Interval
time_step_interval = '1 Days'
# Set Time Step Alignment
time_step_alignment = "START_TIME"
# Run Encode Field Tool.
arcpy.management.EncodeField(in_table, field, encoding_method,
None, time_step_interval, time_step_alignment)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい