Я хочу преобразовать столбец в целое число, но проблема в том, что столбец содержит пропущенное значение.Столбец преобразуется в число с плавающей точкой, но не может быть преобразовано в целое число.
Пример кода:
d2 = {'location': ['NY', 'NY', 'PA', 'NY', 'PA', 'PA', 'NY'], 'dep_name': ['hr', 'mk', 'fin', 'fin', 'hr', 'fin', 'fin'], 'Duration_of_Employment' : [10, 5, 9, 8, 2, 4, 7], 'Salary' : [50000, 86000,25000, 73000, 28000, 60000, 40000], 'Days_Since_Last_Promotion': ['61', '35', '25', '98', 'NaN', '45', '22']}
df2 = pd.DataFrame(data = d2)
df2['xy'] = df2['Days_Since_Last_Promotion'].astype(float)
df2['Months_Since_Last_Promotion'] = df2['xy'] // 30
Теперь 'Months_Since_Last_Promotion' является типом с плавающей запятой.Но когда я пытаюсь преобразовать его в целое число, я получаю следующую ошибку:
df2['Months_Since_Last_Promotion'] = df2['Months_Since_Last_Promotion'].astype(int)
ValueError: Невозможно преобразовать NA в целое число
Из ошибки я понял,из-за пропущенного значения Nan и пробовал эту работу вокруг. Но это не сработало, и 'Months_Since_Last_Promotion' все еще показывает как float64.
df2.loc[df2['Months_Since_Last_Promotion'].notnull(), 'Months_Since_Last_Promotion'] = df2.loc[df2['Months_Since_Last_Promotion'].notnull(), 'Months_Since_Last_Promotion'].astype(int)
Примечание: я не могу использовать fillna для замены NaN.Цель состоит в том, чтобы столбец оставался целым числом.