#python #pandas
#python #панды
Вопрос:
Я прогнозирую кредиты, и у меня есть столбец с количеством месяцев с момента последней просрочки. Существует много пропущенных значений, потому что многие люди не являются правонарушителями. Я не могу заполнить нули, так как это означало бы, что они были преступными. Я хотел бы преобразовать любые числовые значения в ‘1’, а любые Naan в ‘0’. Столбец является float64 .
Я попытался преобразовать float64 в int(), train['X25'] = int(train['X25'])
но получил ошибку типа: невозможно преобразовать ряд в <class ‘int’>
Как это выглядит
Loan Number Months Since Delinquency
1 Naan
2 0
3 3
Как я хочу, чтобы это выглядело
Loan Delinquency
1 0
2 1
3 1
Комментарии:
1. Как вы думаете, почему это
int(NaN)
вернет0
илиint(<some float>)
вернет a1
для произвольных значений? Вы описали, что вы хотите; почему бы не использовать функции, которые проверяют тип иNaN
значения, как вы описали? Вы пытались найти эти функции?
Ответ №1:
Вы должны использовать df['Delinquency '] = df['Months Since Delinquency'].isna()
для получения логического столбца
Ответ №2:
Это должно сработать
df['Delinquency'] = df['Months Since Delinquency'].notnull().astype(int)