Created: 2022-03-23 / Updated: 2022-03-23
【pyodbc×pandas】pyodbcでクエリの結果をpandasのDataFrameとして取得する
目次
概要
pyodbc
で取得してきた結果をpandas
のDataFrame
として取得する方法をメモしておきます。
- 例は、
DataFrame
にした後、CSVファイルとして出力しています。
取得方法
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()
df = pandas.DataFrame(numpy.array(rows), columns=column_names, index=None)
df.to_csv("<出力先パス>", sep=",", encoding="UTF-8", index=False, mode="w", quoting=csv.QUOTE_ALL)
pyodbc
の取得結果はrows
という変数に入れています。
- この
rows
をpandas.DataFrame()
へ、numpy.array()
にして指定します。
DataFrame
はdf
という変数に入れています。
- 上記は、CSVとして出力するサンプルなので、
pyodbc
の取得結果のdescription
から列名を取得し、column_names
という変数に入れています。
DataFrame
を作る際に、この列名もcolumns=
で指定しています。
参考
参照