I have a dataframe
df = pd.DataFrame(data=np.arange(10),columns=['v']).astype(float)
How to make sure that the numbers in v
are whole numbers?
I am very concerned about rounding/truncation/floating point representation errors
astype(int)
Tentatively convert your column to int
and test with np.array_equal
:
np.array_equal(df.v, df.v.astype(int))
True
float.is_integer
You can use this python function in conjunction with an apply
:
df.v.apply(float.is_integer).all()
True
Or, using python's all
in a generator comprehension, for space efficiency:
all(x.is_integer() for x in df.v)
True