SQL テーブルから Python Pandas データフレームにデータを挿入する
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance
この記事では、Python で pyodbc パッケージを使用して、SQL データを pandas データフレームに挿入する方法について説明します。 データフレーム内に含まれるデータの行と列は、さらなるデータの探索に使用できます。
前提条件
サンプル データベースを Azure SQL Managed Instance に復元するための SQL Server Management Studio。
Azure Data Studio。 インストールするには、Azure Data Studio に関するページを参照してください。
この記事で使用されているサンプル データを取得するために、サンプル データベースを復元します。
復元されたデータベースの確認
Person.CountryRegion テーブルに対してクエリを実行して、復元されたデータベースが存在することを確認できます。
USE AdventureWorks;
SELECT * FROM Person.CountryRegion;
Python パッケージのインストール
Azure Data Studio をダウンロードしてインストールします。
次の Python パッケージをインストールします。
- pyodbc
- pandas
これらのパッケージをインストールするには:
- Azure Data Studio ノートブックで、 [パッケージの管理] を選択します。
- [パッケージの管理] ペインで [新規追加] タブを選択します。
- 次の各パッケージについてパッケージ名を入力し、 [検索] をクリックし、 [インストール] をクリックします。
データの挿入
次のスクリプトを使用して、Person.CountryRegion テーブルからデータを選択し、データフレームに挿入します。 接続文字列変数 'server'、'database'、'username'、および 'password' を編集して、SQL に接続します。
新しいノートブックを作成するには:
- Azure Data Studio で [ファイル] を選択し、 [新しいノートブック] を選択します。
- ノートブックで、カーネル [Python3] を選択し、 [+ コード] を選択します。
- ノートブックにコードを貼り付け、 [すべて実行] を選択します。
import pyodbc
import pandas as pd
# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'servername'
database = 'AdventureWorks'
username = 'yourusername'
password = 'databasename'
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
# select 26 rows from SQL table to insert in dataframe.
query = "SELECT [CountryRegionCode], [Name] FROM Person.CountryRegion;"
df = pd.read_sql(query, cnxn)
print(df.head(26))
出力
前のスクリプトの print
コマンドによって、pandas
データフレーム df
のデータ行が表示されます。
CountryRegionCode Name
0 AF Afghanistan
1 AL Albania
2 DZ Algeria
3 AS American Samoa
4 AD Andorra
5 AO Angola
6 AI Anguilla
7 AQ Antarctica
8 AG Antigua and Barbuda
9 AR Argentina
10 AM Armenia
11 AW Aruba
12 AU Australia
13 AT Austria
14 AZ Azerbaijan
15 BS Bahamas, The
16 BH Bahrain
17 BD Bangladesh
18 BB Barbados
19 BY Belarus
20 BE Belgium
21 BZ Belize
22 BJ Benin
23 BM Bermuda
24 BT Bhutan
25 BO Bolivia