Как создать 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()
,