Как создать DataFrame с индексированными датами и библиотекой гипотез?

Я пытаюсь создать pandas DataFrame с hypothesis библиотека для тестирования кода подразумевает следующий код:

from hypothesis.extra.pandas import columns, data_frames
from hypothesis.extra.numpy import datetime64_dtypes

@given(data_frames(index=datetime64_dtypes(max_period='Y', min_period='s'),
                   columns=columns("A B C".split(), dtype=int)))

Я получаю следующую ошибку:

E           TypeError: 'numpy.dtype' object is not iterable

Я подозреваю, что это потому, что когда я строю DataFrame за index= Я только передаю datetime элемент, а не ps.Series все с типом datetime например. Даже если это так (я не уверен), тем не менее, я не уверен, как работать с hypothesis библиотека для достижения моей цели.

Может кто-нибудь сказать мне, что не так с кодом и какое решение будет?

1 ответ

Решение

Причиной вышеуказанной ошибки было то, что data_frames требует индекс, содержащий элементы стратегии внутри, такие как indexes для index= вход. Вместо этого выше datetime64_dtypes предоставляет только элемент стратегии, но не в индексном формате.

Чтобы исправить это, мы сначала предоставляем индекс, а затем элемент стратегии внутри индекса следующим образом:

from hypothesis import given, strategies 
@given(data_frames(index=indexes(strategies.datetimes()),
                   columns=columns("A B C".split(), dtype=int)))

Обратите внимание, что для того, чтобы получить datetime мы используем datetimes(),

Другие вопросы по тегам