[Python] IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer

Discussão em 'Python' iniciado por Stack, Janeiro 19, 2025.

  1. Stack

    Stack Membro Participativo

    While on executing this particular line of code I am getting error.Need to convert particular column havin string datatype to numerical values

    data['sex'] = data['sex'].map( {'male': 1, 'female': 0} ).astype("int64")



    Error message

    IntCastingNaNError Traceback (most recent call last)
    ~\AppData\Local\Temp/ipykernel_8608/2590375292.py in <module>
    2 #Male=1, Female=0
    3 #Converting sex to numerical variable in data
    ----> 4 data['sex'] = data['sex'].map( {'male': 1, 'female': 0} ).astype("int64")
    5
    6 #Converting resting_ecg to numerical variable in data

    ~\anaconda3\lib\site-packages\pandas\core\generic.py in astype(self, dtype, copy, errors)
    5813 else:
    5814 # else, only a single dtype is given
    -> 5815 new_data = self._mgr.astype(dtype=dtype, copy=copy, errors=errors)
    5816 return self._constructor(new_data).__finalize__(self, method="astype")
    5817

    ~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in astype(self, dtype, copy, errors)
    416
    417 def astype(self: T, dtype, copy: bool = False, errors: str = "raise") -> T:
    --> 418 return self.apply("astype", dtype=dtype, copy=copy, errors=errors)
    419
    420 def convert(

    ~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in apply(self, f, align_keys, ignore_failures, **kwargs)
    325 applied = b.apply(f, **kwargs)
    326 else:
    --> 327 applied = getattr(b, f)(**kwargs)
    328 except (TypeError, NotImplementedError):
    329 if not ignore_failures:

    ~\anaconda3\lib\site-packages\pandas\core\internals\blocks.py in astype(self, dtype, copy, errors)
    589 values = self.values
    590
    --> 591 new_values = astype_array_safe(values, dtype, copy=copy, errors=errors)
    592
    593 new_values = maybe_coerce_values(new_values)

    ~\anaconda3\lib\site-packages\pandas\core\dtypes\cast.py in astype_array_safe(values, dtype, copy, errors)
    1307
    1308 try:
    -> 1309 new_values = astype_array(values, dtype, copy=copy)
    1310 except (ValueError, TypeError):
    1311 # e.g. astype_nansafe can fail on object-dtype of strings

    ~\anaconda3\lib\site-packages\pandas\core\dtypes\cast.py in astype_array(values, dtype, copy)
    1255
    1256 else:
    -> 1257 values = astype_nansafe(values, dtype, copy=copy)
    1258
    1259 # in pandas we don't store numpy str dtypes, so convert to object

    ~\anaconda3\lib\site-packages\pandas\core\dtypes\cast.py in astype_nansafe(arr, dtype, copy, skipna)
    1166
    1167 elif np.issubdtype(arr.dtype, np.floating) and np.issubdtype(dtype, np.integer):
    -> 1168 return astype_float_to_int_nansafe(arr, dtype, copy)
    1169
    1170 elif is_object_dtype(arr):

    ~\anaconda3\lib\site-packages\pandas\core\dtypes\cast.py in astype_float_to_int_nansafe(values, dtype, copy)
    1211 """
    1212 if not np.isfinite(values).all():
    -> 1213 raise IntCastingNaNError(
    1214 "Cannot convert non-finite values (NA or inf) to integer"
    1215 )

    IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer


    I need to convert it into categorical values Anyone know the solution please help me

    Continue reading...

Compartilhe esta Página