Как проверить большие кадры данных с помощью pydantic

#python #python-3.x #pandas #pydantic

Вопрос:

Сейчас я перебираю фрейм данных из 700 тысяч строк, но я уверен, что есть лучший способ. Насколько я видел, в документации Pydantic нет четких инструкций для этого.

 class Row(BaseModel):  SourceSiteUrl: str  SourceLibraryUrl: str   @validator('SourceLibraryUrl')  def max_lenth(cls, v):  if len(v) != 38:  raise ValueError('Invalid length')  def validate():  df = pd.DataFrame({SourceSiteUrl: [], SourceLibraryUrl: []})   errors = {}  for r in df.itertuples():  try:  Row(  SourceSiteUrl = r.SourceSiteUrl,  SourceLibraryUrl = r.SourceLibraryUrl,  )  except ValidationError as e:  r = str(e).replace('n', '')  r = re.sub('^[0-9]', '', r).strip()  if r not in errors.keys():  errors[r] = 0  else:  errors[r]  = 1   if not errors:  logging.info(f'{process_name}: Validated without exceptions')  else:  logging.info(f'{process_name}: {errors}')    return  

Комментарии:

1. Это действительно вопрос о pydantic? Было бы по-другому, если бы вы подтвердили это без pydantic? Что не так с вашим нынешним подходом? Это отнимает слишком много времени? Или слишком много памяти?