有没有办法在假设中使用不同的策略指定数据框的多列?
Is there a way to specify multiple columns of a dataframe with different strategies in Hypothesis?
我想创建一个用于测试的数据框,如下所示:
target
var0
var1
var2
var3
0
0.34
1.43
0.41
0.98
1
-1.43
-0.31
7.43
1.95
我已经能够通过将列定义为字典来完成此操作 ,但我想知道是否有更好的方法来做到这一点。我尝试了以下方法,但它不起作用,因为元素不能采用列表:
@given(x_df=
data_frames(
columns=columns(names_or_number=['target','var0','var1','var2','var3'],
elements=[strategies.integers(), strategies.floats()]),
index=range_indexes(min_size=10, max_size=10),
)
)
您可以手动建立 column
个对象的列表,例如通过:
@given(
x_df=data_frames(
columns=[column(name="target", elements=strategies.integers())] + columns(
names_or_number=["var0", "var1", "var2", "var3"],
elements=strategies.floats(),
),
index=range_indexes(min_size=10, max_size=10),
)
)
我想创建一个用于测试的数据框,如下所示:
target | var0 | var1 | var2 | var3 |
---|---|---|---|---|
0 | 0.34 | 1.43 | 0.41 | 0.98 |
1 | -1.43 | -0.31 | 7.43 | 1.95 |
我已经能够通过将列定义为字典来完成此操作 ,但我想知道是否有更好的方法来做到这一点。我尝试了以下方法,但它不起作用,因为元素不能采用列表:
@given(x_df=
data_frames(
columns=columns(names_or_number=['target','var0','var1','var2','var3'],
elements=[strategies.integers(), strategies.floats()]),
index=range_indexes(min_size=10, max_size=10),
)
)
您可以手动建立 column
个对象的列表,例如通过:
@given(
x_df=data_frames(
columns=[column(name="target", elements=strategies.integers())] + columns(
names_or_number=["var0", "var1", "var2", "var3"],
elements=strategies.floats(),
),
index=range_indexes(min_size=10, max_size=10),
)
)