条件付きエクスペクテーション

Great Expectationsで始めるデータ品質入門

Davina Moossazadeh

Data Scientist

条件付きエクスペクテーションとは

条件付きエクスペクテーション — データの一部に対するエクスペクテーション

理由: ある変数は他の変数の値に依存するため

例:

  • star_rating の値が、review_count0 の行ではすべて 0 であることを求めるエクスペクテーション
1 https://docs.greatexpectations.io/docs/core/customize_expectations/expectation_conditions/
Great Expectationsで始めるデータ品質入門

条件付きエクスペクテーションの構文

データセットのエクスペクテーションは、次の2引数を追加して条件付きにできます:

  1. row_condition
    • 条件付きエクスペクテーションを適用するデータ部分を定義するブール式の文字列
  2. condition_parser
    • row_condition の構文を指定する文字列
Great Expectationsで始めるデータ品質入門

condition_parser(条件パーサ)

pandas で条件付きエクスペクテーションを使う場合、この引数は "pandas" に設定します

expectation = gx.Expect...(
    **kwargs,
    condition_parser="pandas",
    row_condition=...
)
Great Expectationsで始めるデータ品質入門

row_condition(行条件)

pandas の構文
df["foo"] == 'Two Two'
df["foo"].notNull()
df["foo"] <= datetime.date(2023, 3, 13)
(df["foo"] < 5) & (df["foo"] >= 3.14)

df["foo"].str.startswith("bar")
Great Expectations の row_condition
'foo == "Two Two"'
'foo.notNull()'
'foo <= datetime.date(2023, 3, 13)'
'(foo > 5) & (foo <= 3.14)'
'foo > 5 and foo <= 3.14'
'foo.str.startswith("bar")'
Great Expectationsで始めるデータ品質入門

row_condition(行条件)

ルール
  1. {{1}} 内で単一引用符を使わない

    • row_condition="foo=='Two Two'"
    • row_condition='foo=="Two Two"' 2つ目の箇条書きの `row_condition` の構文が正しいことを示すチェックマーク。
  2. {{3}} 内で改行を使わない

    • row_condition="""
      foo=="Two Two"
      """  
      
    • row_condition='foo=="Two Two"' 2つ目の箇条書きの `row_condition` の構文が正しいことを示すチェックマーク。
Great Expectationsで始めるデータ品質入門

エクスペクテーション例: 星評価

条件なし
expectation = gx.expectations.\
ExpectColumnValuesToBeBetween(
    column="price_usd",
    max_value=10,
)
validation_results = batch.validate(
    expect=expectation
)
print(validation_results.success)
False
条件あり
expectation = gx.expectations.\
ExpectColumnValuesToBeBetween(
    column="price_usd",
    max_value=10,
    condition_parser='pandas',
    row_condition='mark_price_usd < 10',
)
validation_results = batch.validate(
    expect=expectation
)
print(validation_results.success)
True
Great Expectationsで始めるデータ品質入門

Ayo berlatih!

Great Expectationsで始めるデータ品質入門

Preparing Video For Download...