По умолчанию pandas
преобразовать столбцы с np.nan
как float
Для pandas версия 0.24.0 и выше
Преобразовать необходимые столбцы в тип данных Int8
который может иметь np.nan
значения
columns = ["A1","A2","A3","A4","A5","A6","A7","A8","A9","A10"]
df[columns] = df[columns].astype("Int8")
print(df.dtypes)
См. Эту документацию
Альтернативное решение
вы можете заменить np.nan
на mode
каждого столбца, а затем преобразовать их в int
for c in columns:
x = df[c].mode()
x = list(x)[0]
df[c] = df[c].fillna(x).astype("int")