dataset-quality-audit について
表形式のファイルを 12 の観点で監査し、スコア、総合評価、修正案を出すツールです。データ利用前の確認を行うアナリストやデータチーム向けです。
主な機能
- 0112 項目の品質チェック
- 02項目ごとのスコアと評価
- 03総合スコアと評価
- 04実行可能な修正案
- 05CSV、TSV、Excel、JSON 入力
- 06JSON レポートと行サンプリング
活用シーン
- 01分析前のデータセット監査
- 02ID 列の重複値チェック
- 03大規模ファイルのサンプリング検査
- 04結果を JSON レポートに保存
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill dataset-quality-auditインストール後、Claude Code で/dataset-quality-auditを入力して読み込まれたか確認します。
同梱ファイルLICENSEscripts/data_quality_checker.py
詳細
dataset-quality-audit
表形式データに対して12次元の品質チェックを実行するデータ品質監査ツールです。各次元のスコア(0~100)、総合評価、および実行可能な修正案を出力します。
機能
| 次元 | 説明 |
|---|---|
| 欠損値 | 列ごとの null/NaN 値の件数と割合 |
| 重複行 | 完全に重複した行の数と割合 |
| 型の一貫性 | 1つの列内で型が混在している状態(例:数値とテキストの混在) |
| 値の範囲/外れ値 | IQR 法を使用した外れ値の検出 |
| 形式の準拠 | 日付、メールアドレス、電話番号、その他の形式付きフィールドの一貫性 |
| 一意性制約 | ID 型の列に重複が含まれているかどうか |
| 空白文字の問題 | 先頭/末尾のスペース、空文字列、空白文字のみの値 |
| 定数列 | 一意の値が1つしかない列(情報量ゼロ) |
| 分布の歪度 | 数値列の歪度が過剰かどうか |
| 列名 | 列名内のスペース、特殊文字、大文字と小文字の不統一 |
| カーディナリティの異常 | 一意の値の数が異常に多い、または少ない状態 |
| 列間の一貫性 | 列間の論理チェック(例:開始日が終了日より前かどうか) |
クイックスタート
# Basic quality check
python3 scripts/data_quality_checker.py data.csv
# Save report as JSON
python3 scripts/data_quality_checker.py data.csv --output report.json
# Specify ID columns (for uniqueness checks)
python3 scripts/data_quality_checker.py users.csv --id-columns "user_id,email"
# Specify date columns (for format checks)
python3 scripts/data_quality_checker.py orders.csv --date-columns "created_at,updated_at"
詳細な使用方法
基本的な呼び出し
python3 scripts/data_quality_checker.py <data-file> [options]
パラメーター
| パラメーター | 短縮形 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
input | — | はい | — | 入力ファイルのパス(CSV/TSV/Excel/JSON) |
--output | -o | いいえ | stdout | JSON レポートの出力先パス |
--id-columns | -id | いいえ | 自動検出 | 一意であるべき列名をカンマ区切りで指定 |
--date-columns | -dc | いいえ | 自動検出 | 日付を含む列名をカンマ区切りで指定 |
--sample | -s | いいえ | 全行 | サンプリングする行数(大きなファイルで便利) |
--encoding | -e | いいえ | utf-8 | ファイルのエンコーディング |
出力形式(JSON)
{
"file": "data.csv",
"rows": 10000,
"columns": 15,
"overall_score": 78.5,
"grade": "B",
"dimensions": {
"missing_values": {
"score": 85.0,
"issues": [
{"column": "age", "missing_count": 150, "missing_pct": 1.5, "suggestion": "Fill with median or mode"}
]
},
"duplicates": {
"score": 95.0,
"issues": [...]
}
},
"top_suggestions": [
"Column 'age' has 1.5% missing values — consider filling with the median",
"Found 200 fully duplicated rows — consider deduplication"
]
}
評価基準
| 評価 | スコア範囲 | 意味 |
|---|---|---|
| A+ | 95–100 | 品質は非常に優れており、そのまま使用できます |
| A | 90–95 | 品質は良好で、軽微な問題のみです |
| B | 80–90 | 品質は中程度で、使用前の修正を推奨します |
| C | 60–80 | 品質は低く、大幅なクリーニングが必要です |
| D | 40–60 | 品質は非常に低く、多くの問題への対応が必要です |
| F | 0–40 | 実質的に使用できず、データの再収集または大規模なクリーンアップが必要です |
依存関係
- Python 3.8+
- pandas
- numpy
pip install pandas numpy
コメント
Markdown 対応