Как создать DataFrame с индексированными датами и библиотекой гипотез? - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь создать 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 Ответ

0 голосов
/ 31 октября 2018

Причина вышеуказанной ошибки была в том, что для 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().

...