Sisipkan dataframe Python ke dalam tabel SQL
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Artikel ini menjelaskan cara menyisipkan kerangka data panda ke dalam database SQL menggunakan paket pyodbc di Python.
Prasyarat
SQL Server Management Studio untuk memulihkan database sampel ke Azure SQL Managed Instance.
Azure Data Studio. Untuk menginstal, lihat Mengunduh dan menginstal Azure Data Studio.
Ikuti langkah-langkah dalam database sampel AdventureWorks untuk memulihkan versi OLTP dari database sampel AdventureWorks untuk versi SQL Server Anda.
Anda dapat memverifikasi bahwa database dipulihkan dengan benar dengan mengkueri tabel HumanResources.Department :
USE AdventureWorks; SELECT * FROM HumanResources.Department;
Memasang paket Python
Di Azure Data Studio, buka notebook baru dan sambungkan ke kernel Python 3.
Pilih Kelola Paket.
Di panel Kelola Paket , pilih tab Tambahkan baru .
Untuk setiap paket berikut, masukkan nama paket, klik Cari, lalu klik Instal.
- pyodbc
- pandas
Membuat sampel file CSV
Salin teks berikut dan simpan ke file bernama 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
Membuat tabel database baru
Ikuti langkah-langkah dalam Menyambungkan ke SQL Server untuk menyambungkan ke database AdventureWorks.
Buat tabel bernama HumanResources.DepartmentTest. Tabel SQL akan digunakan untuk penyisipan dataframe.
CREATE TABLE [HumanResources].[DepartmentTest]( [DepartmentID] [smallint] NOT NULL, [Name] [dbo].[Name] NOT NULL, [GroupName] [dbo].[Name] NOT NULL ) GO
Memuat dataframe dari file CSV
Gunakan paket Python pandas
untuk membuat dataframe, memuat file CSV, lalu memuat dataframe ke dalam tabel SQL baru, HumanResources.DepartmentTest.
Sambungkan ke kernel Python 3 .
Tempelkan kode berikut ke dalam sel kode, perbarui kode dengan nilai yang benar untuk
server
, ,database
username
,password
, dan lokasi file 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()
Jalankan sel.
Mengonfirmasi data dalam database
Sambungkan ke kernel SQL dan database AdventureWorks dan jalankan pernyataan SQL berikut untuk mengonfirmasi bahwa tabel berhasil dimuat dengan data dari dataframe.
SELECT count(*) from HumanResources.DepartmentTest;
Hasil
(No column name)
16