使用pandas将python类型转换为postgresql类型以编写新列吗?

时间:2018-06-25 23:21:10

标签: python postgresql pandas sqlalchemy psycopg2

我注意到,当我使用pandas提供的df.to_sql方法时,它将自动检测列类型,然后在编写新表时使用合理的类型。例如,我可能有

这样的df
|---------------------|------------------|------------------|
|    column 1         |     column 2     |    column 3      |
|---------------------|------------------|------------------|
|          "a"        |         34       |        1.5       |
|---------------------|------------------|------------------|

当我使用df.to_sql()时,在Postgres中将显示以下内容:

|---------------------|------------------|------------------|
|    column 1 (text)  |  column 2(int)   |  column 3(float) |
|---------------------|------------------|------------------|
|          a          |         34       |        1.5       |
|---------------------|------------------|------------------|

当我编写其他查询时,Pandas,SQLAlchemy,psycopg2(或其他地方)是否内置可以为我执行此操作的东西?为了提供一些上下文,我正在从API中读取数据,并将其与表中已存在的数据进行比较,然后在缺少新列的情况下向该表中添加新列。所以我的查询看起来像:

query = 'ALTER TABLE my_table ADD COLUMN my_column %s'
connection.execute(query,  auto_convert_type(python_type))

其中auto_convert_type是我要寻找的功能  我意识到自己可以做到,但是我想知道是否已经有什么可以支持这一点?

0 个答案:

没有答案