Введение — перевод документации (pandas.pydata.org)
Базовый синтаксис:
DataFrame.to_sql( name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None )
Записывает записи, хранящиеся в DataFrame, в базу данных SQL. Поддерживаются базы данных, поддерживаемые SQLAlchemy. Таблицы могут быть заново созданы, добавлены или перезаписаны. Пояснения для параметров метода to_sql:
name : string
Имя таблицы SQL.con : sqlalchemy.engine.Engine или sqlite3.Connection
Использование SQLAlchemy позволяет использовать любую БД, поддерживаемую этой библиотекой.schema : string, optional
Укажите схему (если это поддерживает база данных). Если схема не указана, то будет использована схема по-умолчанию.if_exists : {‘fail’, ‘replace’, ‘append’}, default ‘fail’
Параметр описывает поведение, если таблица уже существует.
fail: вызвать ошибку ValueError.
replace: Drop table перед вставкой новых значений.
append: вставить новые значения в существующую таблицу.index : bool, по-умолчанию True
Запишет индекс DataFrame в виде столбца. Использует index_label в качестве имени столбца в таблице.index_label : string или sequence, по-умолчанию отсутствует
Метка столбца для индексных столбцов. Если указано None (по-умолчанию), а index — True, тогда используются имена индексов. Последовательность должна быть задана, если DataFrame использует MultiIndex.chunksize : int, необязательный параметр
Строки будут записаны партиями заданного размера за раз. По-умолчанию строки пишутся одновременно.dtype : dict, необязательный параметр
Указание типа данных для столбцов. Ключи должны быть именами столбцов, а значения — типами или строками.method : {None, ‘multi’, callable}, по-умолчанию None
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html
Контролирует SQL Insert
None : используется стандартный SQL INSERT (по одному на строку).
‘multi’: передать несколько значений в одном INSERT.
callable:вызывается с подписью (pd_table, conn, keys, data_iter).
Пример записи данных из DataFrame ‘data’ в таблицу
import psycopg2 from sqlalchemy import create_engine # предполагаем, что у нас есть DataFrame с названием 'date' # Подключаемся к базе данных PGSQL engine = create_engine('postgresql+psycopg2://user_name:password@host_name_or_ip/database_name') # Пишем в PGSQL data.to_sql('table_name', con=engine, schema = 'dbo', if_exists='replace')
Leave a Reply