> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/data-storage/csv-formatter.md).

# CSVフォーマッター

カスタム列を定義し、データ変換を適用し、バッチデータをCSVドキュメントに集約し、ログ記録、レポート作成、データエクスポートのワークフロー向けに自動タイムスタンプ追跡を行うことで、ワークフローデータを構造化されたCSV形式に変換します。

## このブロックの仕組み

このブロックは、複数のソースからのデータを構造化された列に整理することで、ワークフローデータをCSV（カンマ区切り値）形式に整形します。このブロックは、

1. 次からデータ参照を受け取ります `columns_data` 列名をワークフローデータソース（セレクタ、静的値、またはワークフロー入力）にマッピングする辞書
2. 必要に応じて次を使用してデータ変換処理を適用します `columns_operations`、これはクエリ言語（UQL）を使用して列データを変換します（例: 検出からプロパティを抽出する、計算を行う、値を整形する）
3. 自動的に次を追加します `タイムスタンプ` 現在のUTC時刻をISO形式で含む列を追加します（例: `2024-10-18T14:09:57.622297+00:00`) を各行に追加します - なお、「timestamp」は予約済みの列名です
4. バッチ入力を複数のデータポイントを行に集約して処理します:
   * 単一入力の場合（`batch_size=1`）：ヘッダー行と1行のデータを持つCSVを作成します
   * バッチ入力の場合（`batch_size>1`）：ヘッダー行と入力ごとに1行を持つCSVを作成し、すべての行を1つのCSVドキュメントに集約します。このドキュメントは最後のバッチ要素でのみ出力され（それ以前の要素は空のCSVコンテンツを返します）
5. 複数のバッチ入力がある場合にバッチパラメータを揃え、非バッチパラメータを最大バッチサイズに合わせてブロードキャストします
6. pandasのDataFrameシリアライズを使用して、構造化データ辞書をCSV形式に変換します
7. 返します `csv_content` 完全なCSVドキュメント（ヘッダー行とデータ行）を含む文字列として

このブロックは柔軟な列定義をサポートしており、各列は異なるワークフローデータソース（検出予測、分類結果、ワークフロー入力、計算値など）を参照でき、必要に応じて変換を適用して特定のプロパティを抽出したりデータを整形したりできます。自動タイムスタンプ列により、各CSV行がいつ生成されたかを時系列で追跡でき、ログ記録や時系列データ収集に役立ちます。バッチ集約により、このブロックは複数のワークフロー実行からデータを収集し、それらを1つのCSVドキュメントにまとめることができます。これは、複数の検出結果、画像、または分析結果を1つのCSVファイルに記録したいバッチ処理ワークフローで特に便利です。

## 一般的な使用例

* **検出のログ記録とレポート作成**：検出結果のCSVログを作成します（例: クラス名、信頼度スコア、物体検出モデルからのバウンディングボックス座標を記録する）、これにより推論結果の構造化ログを分析、デバッグ、または監査証跡のために有効にします
* **時系列データ収集**：ワークフローメトリクス、件数、または分析結果を時系列でCSV形式に集約します（例: ラインカウンターのカウント、ゾーン占有率、検出頻度を記録する）、トレンド分析やレポート作成のためのタイムスタンプ付きデータセットを作成します
* **バッチデータのエクスポート**：バッチ処理ワークフローからデータを収集・集約してCSVファイルに出力します（例: 画像バッチからすべての検出結果をエクスポートする、複数のワークフロー実行からメトリクスを収集する）、効率的な一括データエクスポートとレポート作成を可能にします
* **構造化データ変換**：複雑なワークフロー出力から特定のプロパティを抽出して整形します（例: 検出結果からクラス名を抽出する、入れ子のデータ構造をフラットなCSV列に変換する）、下流の分析や外部システム向けのデータ変換を可能にします
* **外部システムとの連携**：外部ツールとの互換性のためにワークフローデータを整形します（例: スプレッドシート分析、データベース取り込み、ビジネスインテリジェンスツール向けのCSVファイルを作成する）、シームレスなデータエクスポートと連携ワークフローを可能にします
* **データ集約と分析**：複数のワークフローソースからのデータを構造化されたCSV形式にまとめます（例: 検出結果をメタデータと結合する、モデル出力を参照データと組み合わせる）、包括的なデータ収集と分析ワークフローを可能にします

## 他のブロックへの接続

このブロックのCSVコンテンツは次に接続できます:

* **検出または分析ブロック** （例: Object Detection Model、Instance Segmentation Model、Classification Model、Keypoint Detection Model、Line Counter、Time in Zone）に接続して出力をCSV列に整形し、推論結果や分析データの構造化ログ記録とエクスポートを可能にします
* **データ保存ブロック** （例: Local File Sink）に接続してCSVファイルをディスクに保存し、整形済みワークフローデータの永続保存を後の分析やレポート作成に役立てます
* **通知ブロック** （例: Email Notification、Slack Notification）に接続して通知にCSVコンテンツを添付または含め、CSVレポートをメール添付ファイルとして送信したり、メッセージ本文に含めたりできるようにします
* **Webhookブロック** （例: Webhook Sink）に接続してCSVコンテンツを外部APIやサービスに送信し、CSVデータを利用する外部システムとの連携を可能にします
* **その他のフォーマッターブロック** （例: JSON Parser、Expression）に接続してCSVコンテンツをさらに処理したり、他の形式に変換したりし、多段階のデータ変換ワークフローを可能にします
* **バッチ処理ワークフロー** 複数のデータポイントを1つのCSVドキュメントに集約する必要がある場合に使用でき、バッチ処理結果の包括的なログ記録とエクスポートを可能にします

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/csv_formatter@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**               | **型**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | **説明**                                                                                                                                                                                                                                                                                                                                                                                                | 参照 |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`               | `str`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                                                                                                                                                               | ❌  |
| `columns_data`       | `Dict[str, Union[bool, float, int, str]]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 列名をデータソースにマッピングしてCSV列を構築する辞書です。キーは列名です（注: 'timestamp' は予約済みで使用できません）。値には、ワークフローデータを参照するセレクタ（例: '$steps.model.predictions'、'$inputs.data'）、静的値（文字列、数値、真偽値）、またはその両方の組み合わせを指定できます。各キーと値のペアが1つのCSV列を作成します。バッチ入力をサポートしており、値がバッチの場合、CSVはすべてのバッチ要素を行に集約します。例: {'predictions': '$steps.object\_detection.predictions', 'count': '$steps.line\_counter.count\_in'} は 'predictions' と 'count' という名前のCSV列を作成します。 | ✅  |
| `columns_operations` | `Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]` | CSV整形前に列データを変換するための、列名をクエリ言語（UQL）の操作定義にマッピングする任意の辞書です。キーは columns\_data で定義された列名と一致している必要があります。値は、列の生データを変換するUQL操作（例: DetectionsPropertyExtract で検出からクラス名を抽出する、文字列操作、計算）のリストです。操作は各列のデータに順番に適用されます。列名がこの辞書にない場合、データは変換されずそのまま使用されます。例: {'predictions': \[{'type': 'DetectionsPropertyExtract', 'property\_name': 'class\_name'}]} は検出予測からクラス名を抽出します。                                                  | ❌  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `CSV Formatter` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `columns_data` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)）：CSV列を構築するために、列名をデータソースにマッピングする辞書です。キーは列名です（注: 'timestamp' は予約済みで使用できません）。値には、ワークフローデータを参照するセレクタ（例: '$steps.model.predictions'、'$inputs.data'）、静的値（文字列、数値、真偽値）、またはその両方の組み合わせを指定できます。各キーと値のペアが1つのCSV列を作成します。バッチ入力をサポートしており、値がバッチの場合、CSVはすべてのバッチ要素を行に集約します。例: {'predictions': '$steps.object\_detection.predictions', 'count': '$steps.line\_counter.count\_in'} は 'predictions' と 'count' という名前のCSV列を作成します。
* 出力
  * `csv_content` ([`string`](/workflows/ja/gaido/developer-guide/kinds/string.md)) : 文字列値。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/csv_formatter@v1",
	    "columns_data": {
	        "predictions": "$steps.model.predictions",
	        "reference": "$inputs.reference_class_names"
	    },
	    "columns_operations": {
	        "predictions": [
	            {
	                "property_name": "class_name",
	                "type": "DetectionsPropertyExtract"
	            }
	        ]
	    }
	}
```

</details>
