How to fix SimpleImputer: "ValueError: Input contains NaN, infinity or a value too large for dtype"

Viewed 1112

I have a dataset tele2_sub as follows:

    MonthlyCharges  TotalCharges
0   29.85           109.90
1   56.95           NaN
2   NaN             108.15
3   42.30           1840.75
4   70.70           NaN
5   NaN             820.50
6   89.10           1949.40
7   NaN             NaN
8   104.80          3046.05
9   54.10           354.95

I use SimpleImputer to complete missing values:

from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values='NaN',strategy='median',verbose=0)
imp.fit(tele2_sub)

However, I receive an error.

Error: ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

What am I missing here?

1 Answers

The SimpleImputer initialization call should set missing_values to numpy.nan as follows:

import numpy as np
from sklearn.impute import SimpleImputer

imp = SimpleImputer(missing_values=np.nan, strategy='median', verbose=0)
imp.fit(tele2_sub)
Related