将 SQL 表中的数据插入 Python pandas 数据框
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例
本文介绍如何在 Python 中使用 pyodbc 包将 SQL 数据插入 pandas 数据框。 数据框中包含的数据的行和列可用于进一步的数据探索。
先决条件
用于将示例数据库还原到 Azure SQL 托管实例的 SQL Server Management Studio。
Azure Data Studio。 如需安装,请参阅 Azure Data Studio。
还原示例数据库以获取本文中使用的示例数据。
验证还原的数据库
可以通过查询 Person.CountryRegion 表来验证是否存在还原的数据库:
USE AdventureWorks;
SELECT * FROM Person.CountryRegion;
安装 Python 包
安装以下 Python 包:
- pyodbc
- pandas
若要安装这些包:
- 在 Azure Data Studio 笔记本中,选择“管理包”。
- 在“管理包”窗格中,选择“添加新包”选项卡。
- 对于以下每个包,输入包名称,单击“搜索”,然后单击“安装”。
插入数据
使用以下脚本选择 Person.CountryRegion 表中的数据并插入数据框中。 编辑连接字符串变量“服务器”、“数据库”、“用户名”和“密码”以连接到 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