如何在pd.io.sql.get_schema中指定sql风格? [英] How to specify flavor of sql in pd.io.sql.get_schema?

查看:44
本文介绍了如何在pd.io.sql.get_schema中指定sql风格?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用pd.io.sql.get_schema从数据帧生成postgres模式.

I am trying to use pd.io.sql.get_schema to generate a postgres schema from a dataframe.

除了以外,没有任何文档( https://github.com. com/pandas-dev/pandas/issues/9960 )链接,它说我可以指定一种sql.

There is no documentation for pd.io.sql.get_schema but from this(https://github.com/pandas-dev/pandas/issues/9960) link it says that I can specify a flavor of sql.

但是,似乎不赞成使用此功能,我可以指定类似postgresql的引擎(从Pandas数据框生成SQL语句).我该怎么做呢?

However this feature seems to be deprecated instead I can specify a engine like postgresql (Generate SQL statements from a Pandas Dataframe). How do I do this?

到目前为止,这是我的代码:

Here is my code so far:

pd.io.sql.get_schema(df.reset_index(), 'data')

打开所有有关生成架构的建议.

Open to all suggestions for generating schema.

推荐答案

我相信您使用SQLAlchemy创建了到PostgreSQL数据库的连接,然后将该连接传递给con kwarg.例如:

I believe you create a connection to a postgreSQL database using SQLAlchemy and then pass that connection to the con kwarg. For example:

import numpy as np
import pandas as pd
import sqlalchemy

dates = pd.date_range('20130101',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))

url = 'postgresql://USER:PASSWORD@HOST:PORT/DATABASE'
con = sqlalchemy.create_engine(url, client_encoding='utf8')
print(pd.io.sql.get_schema(df.reset_index(), 'data', con=con))
CREATE TABLE data (
        index TIMESTAMP WITHOUT TIME ZONE,
        "A" FLOAT(53),
        "B" FLOAT(53),
        "C" FLOAT(53),
        "D" FLOAT(53)
)

这篇关于如何在pd.io.sql.get_schema中指定sql风格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆