I have a dataframe orig_df
with "Alpha" and "Method" column names.
num
is a floating point number with some floating point error. For example, it is 1.1400000000000001.
Meanwhile, "Alpha" values are truncated to 1.14.
As a result, I want to return all the rows such that orig_df["Alpha"]
and num
are close (and that method
matches some string method_type
, but that's less relevant).
So far I have:
temp_df = orig_df[
(math.isclose(orig_df["Alpha"], num))
& (orig_df["Method"] == method_type)
]
But then i receive the error
TypeError: cannot convert the series to <class 'float'>
How can I fix this?
CodePudding user response:
math.isclose
is not a function that can cooperate with pandas
and numpy
arrays.
You need numpy.isclose
:
temp_df = orig_df[
(np.isclose(orig_df["Alpha"], num))
& (orig_df["Method"] == method_type)
]
np
is numpy
in this case.