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

यदि कोई उत्सुक है कि 'डिस्क्रिप्शन' में अन्य मूल्य क्या हैं: 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

संबंधित मुद्दे