mcpField
P
pandera-validation

pandera-validation

github.com/majesticlabs-devデータ・データベース5054 回インストール7 週間前に更新
リポジトリ

pandera-validation について

panderaでpandas DataFrameを検証するデータエンジニア向けのスキルです。スキーマ検証、エラー収集、クラスベースの型ヒント、PythonおよびYAMLへの出力を伴うスキーマ推論のパターンを提供します。

主な機能

  1. 01DataFrameのスキーマ検証
  2. 02検証エラーの収集
  3. 03クラスベースのスキーマと型ヒント
  4. 04スキーマ推論とPython・YAML出力
  5. 05デコレーターによる入出力チェック

活用シーン

  1. 01ETLワークフローのDataFrame検査
  2. 02複数の検証エラーの報告
  3. 03既存データからのスキーマ推論

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/majesticlabs-dev/majestic-marketplace --skill pandera-validation

インストール後、Claude Code で/pandera-validationを入力して読み込まれたか確認します。

同梱ファイルscripts/schemas.py

詳細

Pandera の検証

対象読者: pandas の DataFrame を検証するデータエンジニア。

目標: スキーマ検証と型チェックのための pandera のパターンを紹介します。

スクリプト

scripts/schemas.py のスキーマ関数を実行します。

from scripts.schemas import (
    create_user_schema,
    create_nullable_schema,
    create_date_range_schema,
    UserSchema,
    validate_with_errors,
    infer_and_export_schema
)

使用例

基本的なスキーマ検証
from scripts.schemas import create_user_schema

schema = create_user_schema()
validated_df = schema.validate(df)
すべてのエラーを収集
from scripts.schemas import create_user_schema, validate_with_errors

schema = create_user_schema()
validated_df, errors = validate_with_errors(df, schema)

if errors:
    for err in errors:
        print(f"{err['column']}: {err['check']} - {err['failure_case']}")
クラスベースのスキーマ
from scripts.schemas import UserSchema

# Validate with type hints
UserSchema.validate(df)

# Use as function type hint
def process_users(df: pa.typing.DataFrame[UserSchema]) -> pd.DataFrame:
    return df.query("status == 'active'")
DataFrame からスキーマを推論
from scripts.schemas import infer_and_export_schema

schema_export = infer_and_export_schema(df)
print(schema_export['python_code'])  # Python schema definition
print(schema_export['yaml'])         # YAML schema

組み込みチェックのリファレンス

チェックの種類例説明
数値Check.gt(0), Check.in_range(0, 100)比較
文字列Check.str_matches(r'pattern')正規表現の照合
集合のメンバーシップCheck.isin(['A', 'B'])許可される値
一意性Column の unique=True重複なし
Null 許容Column の nullable=TrueNull を許容

デコレーターを使った検証

import pandera as pa

@pa.check_output(schema)
def load_data(path: str) -> pd.DataFrame:
    return pd.read_csv(path)

@pa.check_input(schema, "df")
def process_data(df: pd.DataFrame) -> pd.DataFrame:
    return df.assign(processed=True)

@pa.check_io(df=input_schema, out=output_schema)
def transform_data(df: pd.DataFrame) -> pd.DataFrame:
    return df.transform(...)

Pandera を使用する場面

ユースケースPandera代替手段
DataFrame の検証✓-
DataFrame の型ヒント✓-
ETL パイプラインのチェック✓Great Expectations
レコード単位の検証-Pydantic

依存関係

pandera>=0.18
pandas

コメント