Kari の「AI解析」機能を活用して生のCSVデータの解析を自動化させる
Copyright © 2026GotoAI株式会社gooseプロジェクトに基く
本事例の手順は、以下の環境で動作を確認しています。
- Kari: バージョン 0.7.3 Windows
- AI プロバイダー: OpenAI ChatGPT サブスクリプション
- モデル: GPT-6.1 Sol High
説明
前のページで取得した 不動産価格.csv は、207,636行・28列・39.3 MB です。CSVファイルの特徴は、どの列が数値でどの列が分類なのか、ファイル情報だけでは決まっていません。分析を始める前に、この生データを「テーブル(表)」として読み込み、各列に適切な型を与える必要があります。行数の少ないファイルであれば、目視でデータの型を確認できますが、ファイルのサイズは大きくなると目で確認することが難しくなります。
この型付けは、本来なら列を1つずつ見て変換を書いていく作業です。Kari の「データコレクション」に取り込み、「AI 解析」を使えば、この作業を AI に任せられます。しかも AI が書いたものは Python スクリプトとして残るため、何をどう変換したのかを後から読んで検証できます。 このような生データから「テーブル」への変換は、データ分析の起点となります。
作業の準備
- 左のナビパネルの「データコレクション」にマウスを合わせ、「データコレクションを追加」をクリックします。

- 「データコレクション1」が作られます。この時点では「データファイル」の下は「(データファイルなし)」です。「データファイル」からファイルを追加すると、種類を選ぶダイアログが開きます。ここでは左上の 「CSV / TSV / Text ファイルを追加」 を選び、前のページで保存した
不動産価格.csvを指定します。

データコレクションは、元のファイルをコピーせず、置き場所を参照します。CSV・Excel・SQLite を1つのコレクションにまとめられるので、出所の違うデータを並べて扱えます。
既定の解析結果を確認する
- ファイルを追加すると「テーブル1」が自動で作られます。データファイルを展開して「テーブル1」を開くと、その場で解析が実行されます(「実行」を押す必要はありません)。この段階のデータ解析は AI ではなく、Kari であらかじめ定めた解析ルールに基づいて実施します。本例では 207,636行(7200 ms) と表示され、グリッドには先頭1000行が出ます。

- 一見すると、これで完成しているように見えます。しかしこの時点では、28列すべてが「テキスト」として読み込まれています。 CSV には型の情報がないため、Kari のルールでは区切り文字と引用符の解釈までを行い、型の判断は意図的に後回しにします。既定の解析スクリプトにも、その方針が次のように書かれています。
The file is read as text on purpose, so that every type is converted here, where you can see and change it, rather than guessed at by the reader. (ファイルは意図的にテキストとして読み込みます。型の変換は、読み手が推測するのではなく、目に見えて変更できるこの場所で行うためです。)
- このままでは「取引価格」で並べ替えても文字列順になり、合計も平均も計算できません。型を与える作業が、ここから先の分析の土台になります。
AI に解析を指示する
- 左のツリーでデータファイル
不動産価格.csvを右クリックし、「AI 解析」 を選びます。

すでにテーブルがあるデータファイルで「AI 解析」を選ぶと、「このデータファイルでこれまでに作成したテーブルは、すべて破棄されます。続行しますか?」 という確認が出ます。AI は白紙の状態から読み直すため、手を加えたスクリプトや記録した列の説明がある場合は、先に控えを取ってください。
- 続行すると、新しいチャットセッションが開き、指示文が自動で入力されて送信されます。自分でプロンプトを書く必要はありません。

送信される指示文は次のとおりです。コレクション名・ファイル名と、それぞれの ID が埋め込まれます。
データコレクション「データコレクション1」(collection_id: ...)のデータファイル
「不動産価格.csv」(datafile_id: ...)のテーブルを作成してください。
このファイルにはまだテーブルがありません。
dc_peek_file でファイルの先頭を確認し、dc_create_table でテーブルを作成して、
dc_read_script で最初のスクリプトを読んでください。そのうえで、ファイルを正しく
読み込み各列を適切な型に変換するスクリプトを書き、列と型が正しくなるまで
dc_run_script で実行してください。最後に、各列の内容と選んだ型を報告してください。
この指示文には、次の工夫が組み込まれています。
| 指示の要素 | ねらい |
|---|---|
dc_peek_file で先頭を確認 | 39.3 MB を全部読ませず、先頭だけを見て列の構造を把握させます。 |
dc_read_script で最初のスクリプトを読む | 既定のスクリプトを出発点にさせます。AI はゼロから書くのではなく、動いているものを編集します。 |
列と型が正しくなるまで dc_run_script で実行 | 書いて終わりにせず、実際に実行して確かめるところまでを1回の指示に含めます。 |
| 各列の内容と選んだ型を報告 | 人が検証できる形で判断の根拠を残させます。確認作業がここに集約されます。 |
AI の解析結果を確認する
- AI がスクリプトを書き、実行し、結果を報告します。左のツリーには
不動産価格.csvの下に新しい「テーブル1」が現れます。

この例では、次のことが報告されています。
-
「データコレクション1:不動産価格.csv:テーブル1」に 207,636行・28列を読み込み、型変換スクリプトを保存・実行した。
-
全行・列順を保持し、数値変換による欠損の増加がないことを確認している。
-
続けて、28列すべてについて「列/内容/型」の表が出力されます。冒頭の6列は次のとおりです。
| 列 | 内容 | 型 |
|---|---|---|
| 種類 | 土地と建物、中古マンション等の分類 | テキスト |
| 価格情報区分 | 成約価格情報・不動産取引価格情報 | テキスト |
| 地域 | 商業地・住宅地・工業地 | テキスト |
| 市区町村コード | 自治体の識別コード | テキスト |
| 都道府県名 | 都道府県の名称 | テキスト |
| 市区町村名 | 市区町村の名称 | テキスト |
- この表で注目すべきは 「市区町村コード」が「テキスト」になっていることです。
13101のように数字だけで構成されているため、機械的に処理すれば数値になりかねない列です。しかし自治体コードは計算の対象ではなく識別子であり、数値にすると先頭のゼロが落ちて別のコードになってしまいます。AI がこの列を数値ではなくテキストと判断したことは、報告表を読んで人が確かめるべき典型的な箇所です。
生成された解析スクリプトを確認する
-
Kari では、データ処理の解析スクリプト(Python)の表示と編集機能を提供しています。目的は主に3つあります:
- データ処理の再現性を担保するとともに、ロジックの透明性を上げます。
- 作成したロジックを、他のデータ処理システムなどへ連携できます。
- 高度な用途では、スクリプトを編集してデータ処理をカスタマイズできます。
-
グリッド下部の「解析スクリプト(Python)」を開くと、AI が書いたスクリプトがそのまま読めます。

# 不動産価格.csv を読み込み、元データの意味を保って型を指定します。
import pandas as pd
DATAFILE_ID = "8a7c15ab-eb25-4435-b4d6-9744b836e2a6"
df = dc_read_csv(
DATAFILE_ID,
sep=",",
linebreak=None,
quote='"',
header=0,
encoding="utf-8-sig",
...
)
-
注目したいのが
encoding="utf-8-sig"です。既定のスクリプトではencoding=None(自動判定)でしたが、AI はこれを BOM 付き UTF-8 として明示的に固定しています。前のページで AI が「文字コードは UTF-8 BOM 付きです」と報告していたことと一致します。文字コードが推測に委ねられていないため、このスクリプトは同じファイルに対して常に同じ結果を返します。 -
以降の行で、各列の型変換が行われます。スクリプトは保存されているため、元の CSV が更新されたら「実行」を押すだけで同じ解析をやり直せます。解析の手順が文章ではなくコードとして残ることが、AI 解析の再現性を支えています。
スクリプトは自分で編集できます。AI の型の判断に納得できない列があれば、該当行を書き換えて「実行」し、結果を確かめてから「保存」してください。AI の出力は出発点であって、最終形ではありません。
テーブルをエクスポートする
- 出来上がったテーブルは、右クリックの「エクスポート…」から取り出せます。

| エクスポートの種類 | 用途 |
|---|---|
| データを CSV ファイルで… | 型を与えたあとのデータを、他のツールに渡します。 |
| データを Excel ファイルで… | そのまま Excel で開いて確認・共有します。 |
| Python スクリプト… | 解析の手順そのものを取り出します。同じ処理を Kari の外で再現したり、レビューに回したりできます。 |
- 分析を続ける場合、エクスポートは必須ではありません。テーブルはデータコレクションに残っているため、このまま次の分析に進めます。
Human-in-the-loop のポイント
AI に任せきりにせず、次の点は人が確認してください。
-
行数が変わっていないことを確かめる
型変換で値が壊れると、本来は行が落ちたり欠損に変わったりします。本例では前ページの取得時と同じ 207,636行が維持され、AI も「数値変換による欠損の増加がない」と報告しています。この数字が取得時と一致しているかを、まず確認してください。 -
識別子の列が数値になっていないか確認する
「市区町村コード」「郵便番号」のように、数字で書かれていても計算しない列があります。これらが数値型になっていると、先頭のゼロが落ちて別の値になります。 報告表の「型」の列を上から順に見て、識別子がテキストのままであることを確かめてください。 -
金額・面積の列が数値になっていることを確認する
逆に、集計したい列がテキストのままでは分析が始められません。「取引価格(総額)」「面積(㎡)」などが数値型になっているかを確認してください。報告表は28列すべてを挙げているので、最後まで読んでください。 -
欠損の意味を確認する
グリッドのNULLは、元データが空欄だったのか、変換に失敗して空になったのかを区別しません。前者なら仕様、後者なら不具合です。欠損の多い列を見つけたら、元の CSV の該当箇所と突き合わせてください。 -
生成されたスクリプトを読む
AI の報告は要約です。実際に何をしたかはスクリプトに書かれています。特にencodingと、各列のto_numeric/to_datetimeのerrorsの扱いは、目を通しておく価値があります。 -
「AI 解析」のやり直しは破壊的である
再実行すると既存のテーブルは破棄されます。スクリプトを手で調整したあとに「AI 解析」を選び直すと、その調整は失われます。調整済みのスクリプトは、「エクスポート…」の「Python スクリプト…」で控えておくと安全です。
使用する LLM により、型の判断や報告の体裁が変わることがあります。本ページの検証では、取得時(High)より軽いモデル(Low)でも妥当な型付けが得られていますが、列数の多いデータでは報告表を最後まで読み、型を1列ずつ確認してください。
参考資料
本ページで解析しているデータは、前のページで取得した国土交通省「不動産情報ライブラリ」のデータです。画面キャプチャは出所を明示した上で引用として掲載しています。AI が出力した型の判断および解析スクリプトは、GotoAI が Kari の動作例として生成したものであり、国土交通省が作成・公表したものではありません。
- 資料名: 不動産情報ライブラリ「不動産価格(取引価格・成約価格)情報の検索・ダウンロード」
- 提供元: 国土交通省
- URL: https://www.reinfolib.mlit.go.jp/realEstatePrices/
- 閲覧日: 2026年10月13日
- 利用条件: 同サイトの利用規約に従います。出典:国土交通省ウェブサイト(上記 URL)。
- 本サイトで引用した外部の情報は、Kari の利用例を説明するためのものです。それらの情報の正確性や最新性について、本サイトは保証しません。引用元の内容は予告なく変更・削除されることがあります。
- 本サイトで示した AI の出力は、記載の検証環境で実際に得られたものです。ただし、その出力の正確性や有用性について、本サイトは保証しません。AI の出力は、使用する LLM や設定、実行のたびに変わることがあります。
- AI が生成した解析スクリプトは、利用者ご自身の責任でご確認のうえお使いください。型の判断を誤ったまま集計すると、結果は誤ったものになります。
- 画面キャプチャは、掲載時点のバージョンの Kari で取得したものです。お使いのバージョンでは表示が異なる場合があります。
- 本ページで扱うのは実際の不動産取引価格のデータです。購入や投資の判断に用いる場合は、必ず元データと照合してください。
- 引用元の各機関・団体は、本サイトおよび Kari と提携・推奨関係にはありません。