I am trying to design a test with pytest.
This involves some operation on some data that gives as a result a pandas dataframe.
I would like to assert
that all elements of the dataframe are:
- zero
- below a small threshold
EDIT: Also I would like to assert
only elements from certain columns to be below a threshold
How can I use pandas dataframes together with pytest?
CodePudding user response:
Use DataFrame.all
with axis=None
for test if all values are Trues, here if all values are 0
or less like threshold, for numeric columns use DataFrame.select_dtypes
with np.number
:
#test only numeric columns
df1 = df.select_dtypes(np.number)
th = 0.01
assert (df1.eq(0) | df1.lt(th)).all(axis=None)