自动从SQL表继承Pandas数据类型

时间:2019-01-30 07:26:52

标签: python sql-server pandas

我正在尝试使用Pandas将数据从一个数据库复制到另一个数据库。
根据要求,表不存在,必须创建。
我发现pandas在目标位置将列创建为text,如果值是null

例如,我使用参数chunksize批量加载数据。第一块使用以下代码和其他代码在目标位置创建表 块追加到现有表。

for chunk in read_sql_query(sql,sqx,chunksize=csize):
  chunk.to_sql(s_table,pg_engine,if_exists='append',index=False,schema=mySchema)

样本数据:

我在SQL表中的数据是

| integer | VARCHAR | somedatetime |
| ------ | ------- | ------------- |
| 1 | 'abc' | NULL |
| 2 | 'asbc' | NULL |
| 3 | 'abvv' | NULL |
....
| 550001 | 'abew' | '2011-08-31 06:00:00' |
| 550002 | 'abyuc' | '2011-08-31 06:00:00' |

第一个块在此处将datetime列创建为text。我需要使用与目标数据类型相似的数据类型来创建目标表。

有什么解决方法吗? 我的想法是在推入大块之前创建一个具有确切结构作为源的空表,这可能吗?

注意: 我已经在下面提到了使用硬编码管理dtypes的帖子。我的问题是从SQL Table获取类似的dtypes

Pandas to_sql changing datatype in database table

0 个答案:

没有答案