Найти - Пользователи
Полная версия: Из Pandas в SQL
Начало » Python для экспертов » Из Pandas в SQL
1
Striver
Здравствуйте!

Не очень давно начал пользоваться 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)
Есть ли способ всё это делать чище/правильнее?


lindatovar
Я думаю, что ваша функция довольно хорошая, я не могу найти никаких ошибок для изменения!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB