Проверка pandas DataFrame с помощью pandera, где отфильтрованная серия, которая может иметь или не иметь значения, терпиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проверка pandas DataFrame с помощью pandera, где отфильтрованная серия, которая может иметь или не иметь значения, терпи

Сообщение Anonymous »

У меня есть пример DataFrame ниже

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

import pandas as pd
import pandera as pa

schema = pa.DataFrameSchema({
'Invoice Type': pa.Column(str, pa.Check(lambda s: s.isin(['Invoice', 'Credit']))),
'Quantity': pa.Column(
int,
checks=[
pa.Check(
lambda df: df[True] < 0,
groupby=lambda df: (
df.assign(is_credit=lambda d: d["Invoice Type"] == 'Credit').groupby(['is_credit'])
),
name = 'negative credits quantities'),
pa.Check(
lambda df: df[True] >= 0,
groupby=lambda df: (
df.assign(is_invoice=lambda d: d['Invoice Type'] == 'Invoice').groupby(['is_invoice'])
),
name = 'postitive invoices quantities'),
]),
'Customer Number': pa.Column(str)
})

df = pandas.DataFrame(
{'Quantity': [1, 2, -3],
'Invoice Type': ['Invoice', 'Invoice', 'Credit'],
'Customer Number': ['ABC', 'ABC', 'DEF']}
)
Это правильно идентифицирует все отрицательные кредиты и положительные счета-фактуры. Проблема возникает тогда, когда у меня нет значений для этой конкретной серии. Обычно у меня возникают ситуации, когда кредитов нет, пример ниже:

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

df = pandas.DataFrame(
{'Quantity': [1, 2, 3],
'Invoice Type': ['Invoice', 'Invoice', 'Invoice'],
'Customer Number': ['ABC', 'ABC', 'DEF']}
)
это означает, что DataFrame со всеми счетами завершается с ошибкой ключа. Как я могу гарантировать, что это пройдет проверку, если в DataFrame присутствует только один тип счета


Подробнее здесь: https://stackoverflow.com/questions/785 ... -may-or-ma
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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