Reputation: 43
I'm trying to convert a Series object to integer. But I'm having trouble doing it. Every time I try something I have a new Error.
pd.to_numeric
, error while parsing string None
None
values with NaN
: problem replacing#1.1)
pd.to_numeric(df['Var1'], downcast = 'integer')
ValueError: Unable to parse string "None" at position 44816
#1.2)
df.astype({'Var1':'int64'}).dtypes
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
#2)
df['Var1'].astype(str).astype(int)
ValueError: invalid literal for int() with base 10: 'None'
actual result: dtype: object
expected result: dtype: int64
Upvotes: 0
Views: 3456
Reputation: 1838
You seem to have a string "None"
in one (or more) of the cells. Try to first replace it with np.nan
and then cast to numeric:
import numpy as np
df = df.replace("None", np.nan).astype({'Var1': float})
Note that in pandas version <0.24 you can't have missing values (NaNs) in an integer column, that's why I suggested casting it to float.
Upvotes: 1