2012-10-03 31 views
21
from pandas import DataFrame 
import pyodbc 

cnxn = pyodbc.connect(databasez) 
cursor.execute("""SELECT ID, NAME AS Nickname, ADDRESS AS Residence FROM tablez""") 
DF = DataFrame(cursor.fetchall()) 

这可以填充我的熊猫数据框。但是,我怎么从pyodbc中返回列名execute()语句

DF.columns = ['ID', 'Nickname', 'Residence'] 

直接从光标?信息是否存储在光标

回答

50

你可以从游标描述列:

columns = [column[0] for column in cursor.description]

+0

如果有人很好奇'.description'中的其他值是什么意思:https://github.com/mkleehammer/pyodbc/wiki/Cursor#attributes –

2

改善对以前的答案,在大熊猫的背景下,我发现这不正是我期望:

DF.columns = DataFrame(np.matrix(cursor.description))[0] 
19

最近熊猫有更高水平read_sql功能可以为你做这个

import pyodbc 
import pandas as pd 

cnxn = pyodbc.connect(databasez) 
DF = pd.read_sql_query("SELECT ID, NAME AS Nickname, ADDRESS AS Residence FROM tablez", cnxn) 
+0

谢谢!这是一个很好的解决方案。 –

+0

令人难以置信的是多么容易 – kbball