首页 > 解决方案 > Pandas 无法读取 SQL 标头 - Python

问题描述

我正在使用 pyodbc 驱动程序并尝试读取 sql server 数据库。生成的数据框具有空列标题,如下所示

ipython 控制台的屏幕截图

我已经将一些字段转换为日期/日期时间类型,并且这些更改似乎在没有相应标题的情况下可见

标签: pythonsqlpandaspyodbc

解决方案


当 SELECT 语句中包含裸列名称时,其名称将自动用于结果集中:

1> SELECT create_date FROM sys.tables WHERE name='team';
2> go
create_date
-----------------------
2021-01-02 11:06:23.763

(1 rows affected)

但是,如果列是表达式的结果,那么大多数数据库引擎不会返回列名……</p>

1> SELECT create_date, CAST(create_date AS date) FROM sys.tables WHERE name='team';
2> go
create_date
----------------------- ----------------
2021-01-02 11:06:23.763       2021-01-02

(1 rows affected)

...除非我们使用 AS 明确提供它:

1> SELECT create_date, CAST(create_date AS date) AS date_only FROM sys.tables WHERE name='team';
2> go
create_date             date_only
----------------------- ----------------
2021-01-02 11:06:23.763       2021-01-02

(1 rows affected)

推荐阅读