Python 指定从SQL server返回的数据框中列的数据类型

Python 指定从SQL server返回的数据框中列的数据类型,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用pandas从SQL Server数据库检索数据,如下所示 df = pd.read_sql_query(query, cnxn) 所以返回一个数据帧,这是我想要的。但是,我注意到列并不总是正确的数据类型,例如,有时数字将是字符串 我在想什么是最好的解决办法 1) 我是否应该使用正确的列数据类型初始化空数据框,然后通过循环游标结果填充数据框 2) 使用返回的数据帧(上例中的df),并在需要转换的列上使用astype()和其他转换器 3) 或者有没有办法在read\u sql\u q

我正在使用pandas从SQL Server数据库检索数据,如下所示

df = pd.read_sql_query(query, cnxn) 
所以返回一个数据帧,这是我想要的。但是,我注意到列并不总是正确的数据类型,例如,有时数字将是字符串

我在想什么是最好的解决办法

1) 我是否应该使用正确的列数据类型初始化空数据框,然后通过循环游标结果填充数据框

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


3) 或者有没有办法在
read\u sql\u query
中指定查询中的每一列所需的数据类型默认情况下,您有
强制\u float=True
,并且可以将日期列列表输入
解析日期
。在
read\u csv
和其他IO方法中,您没有明确的
d类型
支持。有一个关于它的讨论