Python3 Pandas DataFrame To_Sql — запись данных в таблицу

Введение — перевод документации (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
Контролирует SQL Insert
None : используется стандартный SQL INSERT (по одному на строку).
‘multi’: передать несколько значений в одном INSERT.
callable:вызывается с подписью (pd_table, conn, keys, data_iter).

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html

Пример записи данных из 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')
3.7 3 голоса
Рейтинг статьи
Шамаев Иван
Разработчик аналитических решений QlikView/Qlik Sense/Power BI; Python Data Scientist; Разработчик интеграционных решений на PHP, Python, JavaScript.
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x