Вставка кадра данных Python в таблицу SQL
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
В этой статье описывается, как вставить кадр данных pandas в базу данных SQL с помощью пакета pyodbc в Python.
Необходимые компоненты
SQL Server Management Studio для восстановления образца базы данных в Управляемый экземпляр SQL Azure.
Azure Data Studio. Перед выполнением установки ознакомьтесь со статьей Скачивание и установка Azure Data Studio.
Выполните действия из статьи Образцы баз данных AdventureWorks, чтобы восстановить версию OLTP примера базы данных для вашей версии SQL Server.
Проверить правильность восстановления базы данных можно с помощью запроса к таблице HumanResources.Department:
USE AdventureWorks; SELECT * FROM HumanResources.Department;
Установка пакетов Python
В Azure Data Studio откройте новую записную книжку и подключитесь к ядру Python 3.
Выберите Управление пакетами.
В области Управление пакетами выберите вкладку Добавить новые.
Для каждого из следующих пакетов введите имя пакета, щелкните Поиск, а затем Установить.
- pyodbc
- pandas
Создание примера CSV-файла
Скопируйте следующий текст и сохраните его в файл с именем department.csv
.
DepartmentID,Name,GroupName,
1,Engineering,Research and Development,
2,Tool Design,Research and Development,
3,Sales,Sales and Marketing,
4,Marketing,Sales and Marketing,
5,Purchasing,Inventory Management,
6,Research and Development,Research and Development,
7,Production,Manufacturing,
8,Production Control,Manufacturing,
9,Human Resources,Executive General and Administration,
10,Finance,Executive General and Administration,
11,Information Services,Executive General and Administration,
12,Document Control,Quality Assurance,
13,Quality Assurance,Quality Assurance,
14,Facilities and Maintenance,Executive General and Administration,
15,Shipping and Receiving,Inventory Management,
16,Executive,Executive General and Administration
Создайте новую таблицу базы данных
Чтобы подключиться к базе данных AdventureWorks, выполните действия, описанные в разделе Подключение к SQL Server.
Создайте таблицу с именем HumanResources.DepartmentTest. Таблица SQL будет использоваться для вставки кадров данных.
CREATE TABLE [HumanResources].[DepartmentTest]( [DepartmentID] [smallint] NOT NULL, [Name] [dbo].[Name] NOT NULL, [GroupName] [dbo].[Name] NOT NULL ) GO
Загрузка кадра данных из CSV-файла
С помощью пакета Python pandas
создайте кадр данных, загрузите CSV-файл, а затем загрузите кадр данных в новую таблицу SQL HumanResources.DepartmentTest.
Подключитесь к ядру Python 3.
Вставьте следующий код в ячейку кода, указав в нем правильные значения для параметров
server
,database
,username
,password
и расположение CSV-файла.import pyodbc import pandas as pd # insert data from csv file into dataframe. # working directory for csv file: type "pwd" in Azure Data Studio or Linux # working directory in Windows c:\users\username df = pd.read_csv("c:\\user\\username\department.csv") # Some other example server values are # server = 'localhost\sqlexpress' # for a named instance # server = 'myserver,port' # to specify an alternate port server = 'yourservername' database = 'AdventureWorks' username = 'username' password = 'yourpassword' cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) cursor = cnxn.cursor() # Insert Dataframe into SQL Server: for index, row in df.iterrows(): cursor.execute("INSERT INTO HumanResources.DepartmentTest (DepartmentID,Name,GroupName) values(?,?,?)", row.DepartmentID, row.Name, row.GroupName) cnxn.commit() cursor.close()
Запустите ячейку.
Подтверждение данных в базе данных
Подключитесь к ядру SQL и базе данных AdventureWorks, а затем выполните следующую инструкцию SQL и убедитесь, что таблица была успешно заполнена данными из кадра данных.
SELECT count(*) from HumanResources.DepartmentTest;
Результаты
(No column name)
16