Поведение проверки Pandera для случаев неудачи NANPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поведение проверки Pandera для случаев неудачи NAN

Сообщение Anonymous »

Предположим, что мы используем минимальный пример для проверки DataFrame Panderas (см. Этот пост Stackoverflow): < /p>

Код: Выделить всё

import numpy as np
import pandas as pd
import pandera as pa

dataframe = pd.DataFrame({'column_A': ['ABC company', 'BBB company', 'ABC company', 'CCC company'],
'column_B': ['1000', np.NaN, '2000', np.NaN]
})

# define your dataframe level test
check_AB = pa.Check(
lambda df: (df['column_A'].str.contains('ABC')) & (~df['column_B'].isna()),
name='check_AB'
)

schema = pa.DataFrameSchema(
columns={
'column_A': pa.Column(pa.String),
'column_B': pa.Column(pa.String, nullable=True)
},
checks=check_AB  # = 7),
name='check_AB'
)
Опять же, только не нановые значения сообщаются среди случаев неудачи:

Мы можем видеть это в самой объекте ошибки (см.

Код: Выделить всё

try: schema.validate(dataframe, lazy=True)
except pa.errors.SchemaErrors as e: e2 = e; print(e2.failure_cases)

Наконец, если все случаи сбоя являются NANS, Pandera не дает ошибки валидации:

Код: Выделить всё

dataframe = pd.DataFrame({'column_A': ['ABC company', np.nan, 'ABC company', np.nan],
'column_B': [1000, np.NaN, 2000, np.nan]
})

# define your dataframe level test
check_AB = pa.Check(
lambda df: (df['column_A'].str.contains('ABC')) & (df['column_B'] >= 7),
name='check_AB'
)

schema = pa.DataFrameSchema(
columns={
'column_A': pa.Column(pa.String, nullable=True),
'column_B': pa.Column(pa.Float, nullable=True)
},
checks=check_AB  # 

Подробнее здесь: [url]https://stackoverflow.com/questions/79663583/pandera-validation-behavior-for-nan-failure-cases[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»