我正在尝试使用pd.io.sql.get_schema
从数据帧生成postgres模式。
没有pd.io.sql.get_schema
的文档,但是从此(https://github.com/pandas-dev/pandas/issues/9960)链接可以看到,我可以指定一种sql。
但是似乎不赞成使用此功能,我可以指定一个类似postgresql(Generate SQL statements from a Pandas Dataframe)的引擎。我该怎么做呢?
到目前为止,这是我的代码:
pd.io.sql.get_schema(df.reset_index(), 'data')
打开所有有关生成架构的建议。
答案 0 :(得分:3)
我相信您使用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)
)