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())
これは私のpandas DataFrameを設定するのに問題ありません。
DF.columns = ['ID', 'Nickname', 'Residence']
cursor?から直接その情報はcursorに保存されていますか?
カーソルの説明から列を取得できます。
columns = [column[0] for column in cursor.description]
最近pandasはより高いレベルを持っています 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)
前の答えを改善して、パンダの文脈で、これはまさに私が期待することをすることがわかりました:
DF.columns = DataFrame(np.matrix(cursor.description))[0]
Matti John が提供するコードからNoneType
エラーが発生した場合は、必ずcursor.description
callafterデータベースからデータを取得しました。例:
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM my_table")
columns = [column[0] for column in cursor.description]
これは私のためにそれを修正しました。