Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Ez a cikk azt ismerteti, hogyan szúrhat be pandas-adatkeretet egy SQL-adatbázisba a Python Pyodbc-csomagjának használatával.
Prerequisites
SQL Server Management Studio a mintaadatbázis azure SQL Managed Instance-re való visszaállításához.
Azure Data Studio. A telepítésről az Azure Data Studio letöltése és telepítése című témakörben olvashat.
Kövesse az AdventureWorks mintaadatbázisainak lépéseit az AdventureWorks mintaadatbázis OLTP-verziójának visszaállításához az SQL Server-verzióhoz.
Az adatbázis helyes visszaállítását a HumanResources.Department tábla lekérdezésével ellenőrizheti:
USE AdventureWorks; SELECT * FROM HumanResources.Department;
Python-csomagok telepítése
Az Azure Data Studióban nyisson meg egy új jegyzetfüzetet, és csatlakozzon a Python 3 kernelhez.
Válassza a Csomagok kezelése lehetőséget.
A Csomagok kezelése panelen válassza az Új hozzáadása lapot.
Az alábbi csomagok mindegyikéhez adja meg a csomag nevét, válassza a Keresés lehetőséget, majd a Telepítés lehetőséget.
- pyodbc
- pandas
CSV-mintafájl létrehozása
Másolja ki a következő szöveget, és mentse egy nevű department.csvfájlba.
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
Új adatbázistábla létrehozása
Az AdventureWorks-adatbázishoz való csatlakozáshoz kövesse a Csatlakozás SQL Serverhez című témakörben leírt lépéseket.
Hozzon létre egy HumanResources.DepartmentTest nevű táblát. A rendszer az SQL-táblát használja az adatkeret beszúrásához.
CREATE TABLE [HumanResources].[DepartmentTest]( [DepartmentID] [smallint] NOT NULL, [Name] [dbo].[Name] NOT NULL, [GroupName] [dbo].[Name] NOT NULL ) GO
Adatkeret betöltése a CSV-fájlból
A Python-csomag pandas használatával hozzon létre egy adatkeretet, töltse be a CSV-fájlt, majd töltse be az adatkeretet az új SQL-táblába, a HumanResources.DepartmentTestbe.
Csatlakozzon a Python 3 kernelhez.
Illessze be a következő kódot egy kódcellába, és frissítse a kódot a csv
serverdatabaseusernamefájl megfelelő értékeivelpasswordés helyével.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()Futtassa cellát.
Adatok megerősítése az adatbázisban
Csatlakozzon az SQL-kernelhez és az AdventureWorks-adatbázishoz, és futtassa a következő SQL-utasítást annak ellenőrzéséhez, hogy a tábla sikeresen betöltődött-e az adatkeretből származó adatokkal.
SELECT count(*) from HumanResources.DepartmentTest;
Results
(No column name)
16