Share via


Python-gegevensframe invoegen in SQL-tabel

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

In dit artikel wordt beschreven hoe u een Pandas-dataframe invoegt in een SQL-database met behulp van het Pyodbc-pakket in Python.

Prerequisites

Python-pakketten installeren

  1. Open in Azure Data Studio een nieuw notebook en maak verbinding met de Python 3-kernel.

  2. Selecteer Pakketten beheren.

    Pakketten beheren

  3. Selecteer in het deelvenster Pakketten beheren het tabblad Nieuwe toevoegen .

  4. Voer voor elk van de volgende pakketten de pakketnaam in, selecteer Zoeken en selecteer Vervolgens Installeren.

    • pyodbc
    • pandas

Een CSV-voorbeeldbestand maken

Kopieer de volgende tekst en sla deze op in een bestand met de naam 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

Een nieuwe databasetabel maken

  1. Volg de stappen in Verbinding maken met een SQL Server om verbinding te maken met de AdventureWorks-database.

  2. Maak een tabel met de naam HumanResources.DepartmentTest. De SQL-tabel wordt gebruikt voor de gegevensframeinvoeging.

    CREATE TABLE [HumanResources].[DepartmentTest](
    [DepartmentID] [smallint] NOT NULL,
    [Name] [dbo].[Name] NOT NULL,
    [GroupName] [dbo].[Name] NOT NULL
    )
    GO
    

Een gegevensframe laden vanuit het CSV-bestand

Gebruik het Python-pakket pandas om een dataframe te maken, het CSV-bestand te laden en het gegevensframe vervolgens in de nieuwe SQL-tabel HumanResources.DepartmentTest te laden.

  1. Maak verbinding met de Python 3-kernel .

  2. Plak de volgende code in een codecel, werk de code bij met de juiste waarden voor server, database, usernameen passwordde locatie van het CSV-bestand.

    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. Voer de cel uit.

Gegevens in de database bevestigen

Maak verbinding met de SQL-kernel en AdventureWorks-database en voer de volgende SQL-instructie uit om te bevestigen dat de tabel is geladen met gegevens uit het dataframe.

SELECT count(*) from HumanResources.DepartmentTest;

Results

(No column name)
16

Volgende stap