python пакет panda sql поддерживает команду создания таблицы SQL? - PullRequest
0 голосов
/ 13 апреля 2020

Я хочу создать таблицу, используя библиотеку panda sql в python. Это поддерживается? так как я получаю сообщение об ошибке следующим образом:

p = pandasql.sqldf('CREATE TABLE Persons (trial TEXT,case TEXT);')

Сообщение об ошибке:

Traceback (последний последний вызов): in p = panda sql. sqldf ('CREATE TABLE Persons (пробный TEXT, case TEXT);') Файл "C: \ Program Files \ Python37 \ lib \ site-packages \ pandasql \ sqldf.py", строка 156, в sqldf вернуть Panda SQL (db_uri) (query, env) Файл "C: \ Program Files \ Python37 \ lib \ site-packages \ pandasql \ sqldf.py", строка 63, вызов , повышение PandaSQLException (ex) panda sql .sqldf.PandaSQLException: (sqlite3.OperationalError) возле «case»: синтаксическая ошибка [SQL: CREATE TABLE Persons (пробный TEXT, case TEXT);] (фон этой ошибки: http://sqlalche.me/e/e3q8)

1 Ответ

0 голосов
/ 13 апреля 2020

Чтобы создать, добавить или перезаписать таблицу с данными в кадре данных, вы можете использовать DataFrame.to_sql():

Запись записей, хранящихся в кадре данных, в SQL база данных.

Поддерживаются базы данных, поддерживаемые SQLAlchemy [1] . Таблицы могут быть заново созданы, добавлены или перезаписаны.

Чтобы создавать новые таблицы отдельно или перед вставкой данных из DataFrame, используйте SQLAlchemy запросы напрямую:

Если у вас есть описание вашей базы данных с помощью SQLAlchemy, вы можете express, где условия с использованием выражений SQLAlchemy

In [539]: metadata = sa.MetaData()

In [540]: data_table = sa.Table('data', metadata,
   .....:                       sa.Column('index', sa.Integer),
   .....:                       sa.Column('Date', sa.DateTime),
   .....:                       sa.Column('Col_1', sa.String),
   .....:                       sa.Column('Col_2', sa.Float),
   .....:                       sa.Column('Col_3', sa.Boolean),
   .....:                       )
   .....: 

In [541]: pd.read_sql(sa.select([data_table]).where(data_table.c.Col_3 is True), engine)
Out[541]: 
Empty DataFrame
Columns: [index, Date, Col_1, Col_2, Col_3]
Index: []
...