Результаты в формате с плавающей запятой: поэтому
df['column_name']= df['column_name'].astype(int)
выполняет работу , если отсутствуют пропущенные значения в column_name
. Если есть, то dtype будет float, и, следовательно, .0
Если вы хотите преодолеть это, вы должны сначала заменить NaN: например:
df['column_name']= df['column_name'].fillna(0.0).astype(int)
Год 0 для пропущенных значений.