SQL テーブルから Python Pandas データフレームにデータを挿入する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

この記事では、Python で pyodbc パッケージを使用して、SQL データを pandas データフレームに挿入する方法について説明します。 データフレーム内に含まれるデータの行と列は、さらなるデータの探索に使用できます。

前提条件

復元されたデータベースの確認

Person.CountryRegion テーブルに対してクエリを実行して、復元されたデータベースが存在することを確認できます。

USE AdventureWorks;
SELECT * FROM Person.CountryRegion;

Python パッケージのインストール

Azure Data Studio をダウンロードしてインストールします。

次の Python パッケージをインストールします。

  • pyodbc
  • pandas

これらのパッケージをインストールするには:

  1. Azure Data Studio ノートブックで、 [パッケージの管理] を選択します。
  2. [パッケージの管理] ペインで [新規追加] タブを選択します。
  3. 次の各パッケージについてパッケージ名を入力し、 [検索] をクリックし、 [インストール] をクリックします。

データの挿入

次のスクリプトを使用して、Person.CountryRegion テーブルからデータを選択し、データフレームに挿入します。 接続文字列変数 'server'、'database'、'username'、および 'password' を編集して、SQL に接続します。

新しいノートブックを作成するには:

  1. Azure Data Studio で [ファイル] を選択し、 [新しいノートブック] を選択します。
  2. ノートブックで、カーネル [Python3] を選択し、 [+ コード] を選択します。
  3. ノートブックにコードを貼り付け、 [すべて実行] を選択します。
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

次のステップ