Насколько я знаю, fetchall()
это вовсе не метод панд, а скорее метод на курсоре db. Скорее всего, вы не выполняете тот же код при запуске в консоли.
Вы также ни для чего не используете переменные df
и normalisasi
.
Обычно можно сделать что-то вроде:
cursor = connection.cursor()
cursor.execute(query)
rows = cursor.fetchall()
df = pd.DataFrame(rows)
Если бы необходимо сохранить год в базе данных, Вы или хотели бы использовать Целочисленный тип данных (если бы Вы - тупик только при хранении года), или Тип данных datetime (который включил бы хранение даты, которая в основном является 01.01.1990 0:00:00 в формате).
регулярный 4-байтовый INT является путем к большому, трата пространства!
Вы не говорите, какую базу данных Вы используете, таким образом, я не могу рекомендовать определенный тип данных. Все говорят "целое число использования", но большинство баз данных хранит целые числа на уровне 4 байтов, который является путем больше, чем Вам нужно. Необходимо использовать двухбайтовое целое число (smallint на SQL Server), который сохранит пространство лучше.
Только год, ничто иное? Почему бы не использовать простое целое число?
Используйте целое число, если все, что необходимо сохранить, является годом. Можно также использовать дату и время, если Вы думаете, что будут основанные на дате вычисления при запросах этого столбца
Эй, вы можете использовать тип данных year () в MySQL Он доступен в двузначном или четырехзначном формате.
Примечание. Допустимые значения в четырехзначном формате: с 1901 по 2155. Допустимые значения в двухзначном формате: от 70 до 69, представляющие годы с 1970 по 2069 год