【发布时间】:2016-03-26 18:41:48
【问题描述】:
我有一个 pandas 数据框,它是动态创建的,列名不同。我正在尝试将它们推送到 sql,但不希望它们将 mssqlserver 作为默认数据类型“文本”(谁能解释为什么这是默认值?使用更常见的数据类型是否有意义? )
有谁知道如何为所有列指定数据类型?
column_errors.to_sql('load_errors',push_conn, if_exists = 'append', index = False, dtype = #Data type for all columns#)
dtype 参数采用 dict,因为我不知道列是什么,所以很难将它们全部设置为 'sqlalchemy.types.NVARCHAR'
这是我想做的:
column_errors.to_sql('load_errors',push_conn, if_exists = 'append', index = False, dtype = 'sqlalchemy.types.NVARCHAR')
任何关于如何最好地指定所有列类型的帮助/理解将不胜感激!
【问题讨论】:
-
对于那些正在谷歌搜索的人,我想提一下,这个理想的语法已经实现了
-
@Liza,你能指出它是如何实现的以及如何使用它吗?
-
github.com/pandas-dev/pandas/blob/… "dtype : 单个 SQLtype 或 dict of column name to SQL type, default None 可选的指定列的数据类型。SQL类型应该是SQLAlchemy类型,或者是sqlite3后备连接的字符串. 如果所有列的类型相同,则可以使用一个值。在源代码中找到。如果我是正确的,它可以完全按照问题所示使用:dtype = 'sqlalchemy.types.NVARCHAR'
标签: python pandas sqlalchemy