I'm trying to convert a few float columns to int in a DF but I'm getting above error. I've tried both to convert it as well as to fillna to 0(which I prefer not to do, as in my dataset the NA is required).
What am I doing wrong? I've tried both:
orginalData[NumericColumns] = orginalData[NumericColumns].astype('Int64')
#orginalData[NumericColumns] = orginalData[NumericColumns].fillna(0).astype('Int64')
but it keeps resulting in the same error
TypeError: cannot safely cast non-equivalent float64 to int64
What can I do to convert the columns?
No need to replace nan
.
You can pass to Int64
safely by doing:
df['A'] = np.floor(pd.to_numeric(df['A'], errors='coerce')).astype('Int64')
Your nans
will be replaced with <NA>
.
Source
You need to have pandas >.24 version.
import numpy as np
orginalData[NumericColumns] = orginalData[NumericColumns].fillna(0).astype(np.int64, errors='ignore')
For NaNs you need to replace the NaNs with 0, then do the type casting
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With