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())
这很好,可以填充我的熊猫数据帧。但是我如何获得
DF.columns = ['ID', 'Nickname', 'Residence']
直接从光标?该信息是否存储在游标中?
您可以从光标说明中获取列:
columns = [column[0] for column in cursor.description]
最近的熊猫有更高级别的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)
如果您在 Matti John 提供的代码中遇到NoneType
错误,请确保在从数据库中检索数据后进行cursor.description
调用。举个例子:
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM my_table")
columns = [column[0] for column in cursor.description]
这为我修复了它。
改进前面的答案,在熊猫的背景下,我发现这完全符合我的预期:
DF.columns = DataFrame(np.matrix(cursor.description))[0]