Think Twice
IT技術メモ | Pythonのメモ
Created: 2022-03-23 / Updated: 2022-03-23

【pyodbc×pandas】pyodbcでクエリの結果をpandasのDataFrameとして取得する


目次


概要

取得方法

Copy
import pyodbc
import pandas
import csv

conn = pyodbc.connect("<接続文字列>")
conn.autocommit = False
cursor = conn.cursor()
result = cursor.execute("<SQL>")
desc = result.description
column_names = [d[0] for d in desc] # 取得結果の列名を取得
rows = cursor.fetchall() # データを取得
cursor.close()

# pyodbcの取得結果=rows
# rowsをpandasのDataFrameへ
# ついでにcolumn_namesとして列名のリストも取得し列として指定
df = pandas.DataFrame(numpy.array(rows), columns=column_names, index=None)

# CSVへ出力
df.to_csv("<出力先パス>", sep=",", encoding="UTF-8", index=False, mode="w", quoting=csv.QUOTE_ALL)

参考

参照