Bagikan melalui


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

  • 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

  1. Di Azure Data Studio, buka notebook baru dan sambungkan ke kernel Python 3.

  2. Pilih Kelola Paket.

    Mengelola paket

  3. Di panel Kelola Paket , pilih tab Tambahkan baru .

  4. 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

  1. Ikuti langkah-langkah dalam Menyambungkan ke SQL Server untuk menyambungkan ke database AdventureWorks.

  2. 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.

  1. Sambungkan ke kernel Python 3 .

  2. Tempelkan kode berikut ke dalam sel kode, perbarui kode dengan nilai yang benar untuk server, , databaseusername, 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()
    
  3. 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

Langkah berikutnya