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

本文是小编为大家收集整理的关于如何在pd.io.sql.get_schema中指定sql的味道?的处理方法,想解了如何在pd.io.sql.get_schema中指定sql的味道?的问题怎么解决?如何在pd.io.sql.get_schema中指定sql的味道?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

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

没有关于 pd.io.sql.get_schema 的文档,但是从这个(https://github.com/pandas-dev/pandas/issues/9960) 链接它说我可以指定一种 sql 风格.

但是这个功能似乎已被弃用,我可以指定一个类似 postgresql 的引擎(从 Pandas 数据框生成 SQL 语句).我该怎么做呢?

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

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

欢迎所有生成架构的建议.

推荐答案

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

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)
)

本文地址:https://www.itbaoku.cn/post/1727931.html