조건부 기대값

Great Expectations로 배우는 데이터 품질 입문

Davina Moossazadeh

Data Scientist

조건부 기대값이란?

조건부 기대값 - 데이터의 일부에만 적용되는 Expectation

이유: 일부 변수는 다른 변수 값에 따라 달라짐

예:

  • review_count0인 모든 행에서 star_rating 값이 반드시 0이어야 한다는 Expectation
1 https://docs.greatexpectations.io/docs/core/customize_expectations/expectation_conditions/
Great Expectations로 배우는 데이터 품질 입문

조건부 기대값의 구문

Dataset Expectation은 인자를 두 개만 더하면 조건부 Expectation으로 전환할 수 있음:

  1. row_condition
    • 조건부 Expectation을 적용할 데이터 부분을 정의하는 부울 식 문자열
  2. condition_parser
    • row_condition의 구문을 정의하는 문자열
Great Expectations로 배우는 데이터 품질 입문

condition parser

pandas로 조건부 Expectation을 구현할 때는 이 인자를 "pandas"로 설정해야 함

expectation = gx.Expect...(
    **kwargs,
    condition_parser="pandas",
    row_condition=...
)
Great Expectations로 배우는 데이터 품질 입문

row 조건

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 조건

규칙
  1. {{1}} 안에는 작은따옴표를 쓰지 않음

    • row_condition="foo=='Two Two'"
    • row_condition='foo=="Two Two"' 두 번째 불릿의 `row_condition` 구문이 올바름을 나타내는 체크 표시.
  2. {{3}} 안에는 줄바꿈을 쓰지 않음

    • row_condition="""
      foo=="Two Two"
      """  
      
    • row_condition='foo=="Two Two"' 두 번째 불릿의 `row_condition` 구문이 올바름을 나타내는 체크 표시.
Great Expectations로 배우는 데이터 품질 입문

예시 Expectation: 별점

조건 없음
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...