首页 > 解决方案 > 指定从 SQL Server 返回的数据框中列的数据类型

问题描述

我正在使用 pandas 和下面的行从 SQL Server 数据库中检索数据。

df = pd.read_sql_query(query, cnxn) 

所以返回了我想要的数据框。但是我注意到这些列并不总是正确的数据类型,例如有时一个数字将是一个字符串。

我想知道解决这个问题的最佳方法是什么?

1)我是否应该使用列的正确 dtypes 初始化一个空数据框,然后通过遍历游标结果来填充数据框

2)使用返回的数据框(上面示例中的df)并在需要转换的列上使用 astype() 和其他转换器

3)或者有没有办法指定read_sql_query查询中每一列的数据类型

标签: pythonpandasdataframe

解决方案


默认情况下coerce_float=True,您可以将日期列列表输入parse_dates. 您没有像 in和其他 IO 方法那样的明确dtypes支持。这里read_csv有一个关于它的讨论。


推荐阅读