Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Este artigo descreve como inserir um dataframe pandas em um banco de dados SQL usando o pacote Pyodbc em Python.
Prerequisites
SQL Server Management Studio para restaurar o banco de dados de exemplo para a Instância Gerenciada SQL do Azure.
Azure Data Studio. Para instalar, consulte Baixar e instalar o Azure Data Studio.
Siga as etapas em bancos de dados de exemplo AdventureWorks para restaurar a versão OLTP do banco de dados de exemplo AdventureWorks para sua versão do SQL Server.
Você pode verificar se o banco de dados foi restaurado corretamente consultando a tabela HumanResources.Department :
USE AdventureWorks; SELECT * FROM HumanResources.Department;
Instalar pacotes Python
No Azure Data Studio, abra um novo bloco de anotações e conecte-se ao kernel do Python 3.
Selecione Gerenciar pacotes.
No painel Gerenciar pacotes , selecione a guia Adicionar novo .
Para cada um dos seguintes pacotes, insira o nome do pacote, selecione Pesquisar e, em seguida, selecione Instalar.
- pyodbc
- pandas
Criar um arquivo CSV de exemplo
Copie o texto a seguir e salve-o em um arquivo chamado 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
Criar uma nova tabela de banco de dados
Siga as etapas em Conectar-se a um SQL Server para se conectar ao banco de dados AdventureWorks.
Crie uma tabela chamada HumanResources.DepartmentTest. A tabela SQL será usada para a inserção do dataframe.
CREATE TABLE [HumanResources].[DepartmentTest]( [DepartmentID] [smallint] NOT NULL, [Name] [dbo].[Name] NOT NULL, [GroupName] [dbo].[Name] NOT NULL ) GO
Carregar um dataframe a partir do arquivo CSV
Use o pacote Python pandas para criar um dataframe, carregar o arquivo CSV e, em seguida, carregar o dataframe na nova tabela SQL, HumanResources.DepartmentTest.
Conecte-se ao kernel Python 3 .
Cole o código a seguir em uma célula de código, atualizando o código com os valores corretos para
server,database,username,password, e o local do arquivo 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()Executar a célula.
Confirmar dados na base de dados
Conecte-se ao kernel SQL e ao banco de dados AdventureWorks e execute a seguinte instrução SQL para confirmar que a tabela foi carregada com êxito com dados do dataframe.
SELECT count(*) from HumanResources.DepartmentTest;
Results
(No column name)
16