Если вы создаете столбец, присваивая значение одной строке, все остальные строки неявно инициализируются равными NaN
, что является значением с плавающей запятой.Это заставит весь столбец к float
.
(Вы также заметите это, если попытаетесь преобразовать столбец, используя df_texts['#_words'] = df_texts['#_words'].astype(int)
до того, как будут установлены все значения. Это не удастся, потому что NaN
не может быть преобразованов int
.)
Следовательно, столбец не может стать целочисленным столбцом, пока не будут установлены все значения.Проблема исчезнет, если вы инициализируете весь столбец с помощью df_texts['#_words'] = 0
перед циклом.
Edit: Кроме того, как указывалось в других ответах, это назначение можно выполнить без использованияцикл в первую очередь.