2012-10-03 30 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