Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 22, 2018 09:30:42

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Из Pandas в SQL

Здравствуйте!

Не очень давно начал пользоваться pandas, и некоторые моменты остаются непонятными для меня.
Если некий столбец заполнять целыми числами, то они там такими и будут. Но если хотя бы одно значение оказалось/стало None, то происходят две неприятные вещи:
1) все целые числа становятся числами с плавающей запятой (кажется, numpy.float64)
2) все значения None преобразуются в Nan
Иногда это не имеет значения, но иногда это катастрофа!
Мне нужно данные этого датафрейма запихать в таблицу базы данных, и этот столбец с целыми числами (в котором может быть None) - это внешний ключ к другой таблице. Если при выполнении cursor.execute(“INSERT …”) вместо int или None встретились float или nan, то это сразу же приводит к ошибке.

Сейчас я перед записью в БД, после выгрузки из датафрейма в список кортежей, ко всем полям, являющимся внешним ключом, применяю такую функцию:

 def to_int_None(value):
    if value is None or value!=value: # Может быть nan
        return None
    else:
        return int(value)
Есть ли способ всё это делать чище/правильнее?




Офлайн

#3 Май 23, 2019 11:25:55

lindatovar
Зарегистрирован: 2019-05-23
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Из Pandas в SQL

Я думаю, что ваша функция довольно хорошая, я не могу найти никаких ошибок для изменения!

Офлайн

#4 Янв. 16, 2020 06:41:55

coolkiu00
Зарегистрирован: 2020-01-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Из Pandas в SQL

You make me feel energetic, very helpful article
mapquest driving directions

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version