I would like to create a dataframe for testing that looks like:
target | var0 | var1 | var2 | var3 |
---|---|---|---|---|
0 | 0.34 | 1.43 | 0.41 | 0.98 |
1 | -1.43 | -0.31 | 7.43 | 1.95 |
I have been able to do this by defining the columns as a dictionary as seen in this answer https://stackoverflow.com/a/65720110/251754, but I’m wondering if there is a better way to do it. I have tried the following, which doesn’t work because elements cannot take a list:
JavaScript
x
8
1
@given(x_df=
2
data_frames(
3
columns=columns(names_or_number=['target','var0','var1','var2','var3'],
4
elements=[strategies.integers(), strategies.floats()]),
5
index=range_indexes(min_size=10, max_size=10),
6
)
7
)
8
Advertisement
Answer
You can build up a list of column
objects by hand, e.g. by:
JavaScript
1
10
10
1
@given(
2
x_df=data_frames(
3
columns=[column(name="target", elements=strategies.integers())] + columns(
4
names_or_number=["var0", "var1", "var2", "var3"],
5
elements=strategies.floats(),
6
),
7
index=range_indexes(min_size=10, max_size=10),
8
)
9
)
10