Добавить данные в таблицу, если не выходит, используя .to_sql - PullRequest
0 голосов
/ 24 апреля 2019

Используя следующий код:

conn = sqlite3.connect(new_database_name)
dataset_symbol_sorted.to_sql(name = symbol_name_changed , con =  conn, if_exists="append")
cursor = conn.cursor()

Я хотел бы добавить данные сейчас, если они еще не существуют.Таблица в виде столбца называется «дата», который следует использовать в качестве идентификатора.Будет ли простой способ сделать это?

Я попробовал решение, в котором я добавляю, а затем удаляю дубликаты, но это не идеальное решение.

1 Ответ

0 голосов
/ 24 апреля 2019

Я полагаю, что ответ на ваш вопрос можно найти здесь: Сбои Pandas to_sql на дублированном первичном ключе

(извините за публикацию в качестве ответа, поскольку я все еще не могу комментировать)

По сути, у Pandas нет INSERT IGNORE, что оставляет следующие альтернативы:

  1. попытаться добавить строку данных за строкой и поместить логику IntegrityError в блок try-кроме (но он работает очень плохо)

  2. получение данных sql для Pandas, используйте их для поиска дубликатов индексов и просто загрузите новые (я бы сделал это, если данные небольшие)

  3. загрузка sql в промежуточную таблицу и работа со строками с чистым sql

Кстати, называть колонку «дата» не очень хорошая идея, так как это зарезервированное слово во многих языках и базах данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...