我正在使用下面一行的pandas从SQL Server数据库中检索数据。
df = pd.read_sql_query(query, cnxn)
因此返回了我想要的数据框。但是我注意到,列并不总是正确的数据类型,例如有时数字是字符串。
我想知道解决这个问题的最佳方法是什么?
1)我应该用正确的dtypes初始化列的空数据框,然后通过遍历游标结果填充数据框
2)使用返回的数据框(在上面的示例中为df),并在需要转换的列上使用astype()和其他转换器
3)或有一种方法可以在read_sql_query
中为查询中的每一列指定期望的数据类型
答案 0 :(得分:1)
默认情况下,您有coerce_float=True
,并且可以将日期列列表输入parse_dates
中。您没有像dtypes
和其他IO方法那样具有明确的read_csv
支持。 here对此进行了讨论。