当前位置: 首页 > 面试题库 >

pandas to_sql所有列为nvarchar

仲高超
2023-03-14
问题内容

我有一个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')

对于如何最好地指定所有列类型的任何帮助/理解,将不胜感激!


问题答案:

如果您事先不知道列名称,则可以动态创建此字典:

from sqlalchemy.types import NVARCHAR
df.to_sql(...., dtype={col_name: NVARCHAR for col_name in df})

请注意,您必须传递sqlalchemy类型对象本身(或实例以指定参数,例如NVARCHAR(length=10)),而 不是 示例中的字符串。



 类似资料:
  • 问题内容: 我正在尝试从以下位置移出旧数据: 复制所有列。我已经尝试过了,但是没有用: 注意:这些表是相同的,并已设置为主键。 问题答案: 手册中描述了正确的语法。尝试这个: 如果id列是一个自动递增的列,并且您在两个表中都已经有一些数据,那么在某些情况下,您可能希望从列列表中省略该id并生成新的id,以避免插入原来的ID表。如果您的目标表为空,那么这将不是问题。

  • 问题内容: 我如何指定标记应跨所有列(当表中确切的列数是可变的/难于确定何时呈现HTML时)?w3schools提到您可以使用,但是并未确切说明哪些浏览器支持该值(IE6在我们的支持列表中)。 似乎设置为大于您可能具有的理论列数的值将是可行的,但如果将其设置为,则它将不起作用。使用大量的自动版式是否有任何弊端?有更正确的方法吗? 问题答案: 我有IE 7.0,Firefox 3.0和Chrome

  • 我有一个由6列组成的数据框。生成矩阵的最快方法是什么,该矩阵具有以下功能: 步骤1)col1*col1a, col2*col2a, col3*col3a, col4*col4a 步骤2)col_new=(col1*col1a)-col2*col2a)/(col1a-col2a) 使用for循环是选择之一——但是有什么方法可以更快地实现这一点。 我需要有1x3,1x4,1x5,2x3,2x4等等的列

  • 问题内容: 知道索引列会带来更好的性能,是否值得对数据库所有表中的所有列建立索引?这种方法的优点/缺点是什么? 如果值得的话,有没有一种方法可以在SQL Server中自动创建索引?我的应用程序动态地添加了表和列(取决于用户配置),我希望它们被自动索引。 问题答案: 由于上面提到的原因,很难想象在现实世界中对每列进行索引都是有用的。场景类型将需要一堆不同的查询,所有查询都只访问表的一列。每个查询可

  • 问题内容: 有没有一种方法可以获取实例中所有数据库中所有存储过程中引用的所有列和表?输出应为: 问题答案: 这将得到您想要的列表,但是,如果您在动态SQL中嵌入了此类列引用(并且可能找不到依赖于延迟名称解析的引用),则将无济于事。SQL Server不会解析存储过程的文本以提供DMV输出。 现在尝试使用子句来处理在同一服务器上具有不同归类的数据库的情况。 如果您的数据库处于80兼容模式,那么该语法

  • 我正在尝试创建一个地图减少工作在Java的表从一个HBase数据库。使用这里的示例和internet上的其他内容,我成功地编写了一个简单的行计数器。然而,试图编写一个实际对列中的数据执行某些操作的程序是不成功的,因为接收的字节总是空的。 我的司机工作的一部分是这样的: 如您所见,该表称为。我的映射器如下所示: 一些注意事项: 表中的列族只是。有多个列,其中一些列称为和(第一次看到); 即使值正确显