python-3.x - 如何在 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 Dataframe 生成 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)
)
推荐阅读
- c# - UWP MediaElement 不播放音乐
- java - 为什么使用 getter 函数代替“?”时会出错
- spring-boot - 如何允许在我的整个 Axon 应用程序上并行处理事件?
- express - 反应管理员 GET_LIST 格式
- javascript - 将 PHP 变量传递给外部 JavaScript 文件
- reactjs - 为什么在 React-Redux 更改期间一个状态会影响到另一个状态?
- css - 相邻的 flexbox div 与包装内容对齐基线而不是网格
- python - 如何在Python中对带有尾随零的数字字符串进行排序?
- html - 创建没有附加元素或双框阴影的框阴影偏移
- python - 尝试将 RLE 转换为 ASCII 但不允许我转换多于一行