Невозможно преобразовать столбец dataframe в тип данных int64.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно преобразовать столбец dataframe в тип данных int64.

Сообщение Anonymous »

У меня проблема.
В моем DataFrame Pandas есть столбец под названием «Задание». Я создал простой и настраиваемый преобразователь, который будет отображать значения в этом столбце, соответствующие типу задания. Проблема возникает, когда после сопоставления значений и их проверки столбец теперь имеет тип данных с плавающей запятой.
[Вот изображение, см. столбец «задание»]
( https://i.sstatic.net/yrImfOe0.png)
Я решил, что это может повлиять на производительность моей модели DecisionTreeClassifier и модели классификатора опорных векторов.
Вот фрагмент кода пользовательского преобразователя, который я использовал

Код: Выделить всё

class PreprocessJobColumn (BaseEstimator, TransformerMixin):
def __init__ (self):
self.dictionary_map = {
"admin" : 1,
"blue-collar" : 2,
"entrepreneur" : 3,
"housemaid" : 4,
"management" : 5,
"retired" : 6,
"self-employed" : 7,
"services" : 8,
"student" : 9,
"technician" : 10,
"unemployed" : 11
}

def map_job_values (self, element_to_process):
if element_to_process in self.dictionary_map.keys():
return self.dictionary_map.get(element_to_process, -1)

def fit_transform(self, X):
# Create a copy of the dataset
features_dataset_copy = X.copy()

# Mapping values
features_dataset_copy["job"] = features_dataset_copy["job"].apply(self.map_job_values)
features_dataset_copy["job"] = features_dataset_copy["job"].astype("int64")
return features_dataset_copy
Если я запущу этот код, он выдаст следующую ошибку:

Код: Выделить всё

---------------------------------------------------------------------------
IntCastingNaNError                        Traceback (most recent call last)
 in ()
2 preprocess_education_column = PreprocessEducationColumn()
3
----> 4 df_copy = preprocess_job_column.fit_transform(df_copy)
5 df_copy = preprocess_education_column.fit_transform(df_copy)

9 frames
/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py in _astype_float_to_int_nansafe(values, dtype, copy)
143     """
144     if not np.isfinite(values).all():
--> 145         raise IntCastingNaNError(
146             "Cannot convert non-finite values (NA or inf) to integer"
147         )

IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer
Я пытался удалить нулевые значения и даже создал условия для удаления строк с нулевым значением


Подробнее здесь: https://stackoverflow.com/questions/791 ... -data-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно преобразовать столбец dataframe в тип данных int64.
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Невозможно преобразовать столбец dataframe в тип данных int64.
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Невозможно преобразовать значение типа «String» в ожидаемый тип аргумента «Int64», выражение, [дубликат]
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Невозможно выделить 11,6 GIB на массив с формой (1554122468,) и тип данных Int64
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Невозможно выделить 11,6 GIB на массив с формой (1554122468,) и тип данных Int64
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»