Вставка данных из таблицы SQL в кадр данных Python pandas
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
В этой статье описывается, как вставить данные SQL в кадр данных pandas с помощью пакета pyodbc в Python. Строки и столбцы, содержащиеся в кадре данных, можно использовать для дальнейшего изучения данных.
Необходимые компоненты
SQL Server Management Studio для восстановления образца базы данных в Управляемый экземпляр SQL Azure.
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