Partilhar via


Inserir dados de uma tabela SQL num dataframe pandas do Python

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Este artigo descreve como inserir dados SQL em um dataframe pandas usando o pacote pyodbc em Python. As linhas e colunas de dados contidas no dataframe podem ser usadas para exploração adicional de dados.

Prerequisites

Verificar o banco de dados restaurado

Você pode verificar se o banco de dados restaurado existe consultando a tabela Person.CountryRegion :

USE AdventureWorks;
SELECT * FROM Person.CountryRegion;

Instalar pacotes Python

Baixe e instale o Azure Data Studio.

Instale os seguintes pacotes Python:

  • pyodbc
  • pandas

Para instalar estes pacotes:

  1. No seu bloco de anotações do Azure Data Studio, selecione Gerenciar Pacotes.
  2. No painel Gerenciar pacotes , selecione a guia Adicionar novo .
  3. Para cada um dos seguintes pacotes, insira o nome do pacote, clique em Pesquisar e, em seguida, clique em Instalar.

Inserir dados

Use o script a seguir para selecionar dados da tabela Person.CountryRegion e inseri-los em um dataframe. Edite as variáveis da cadeia de conexão: 'servidor', 'banco de dados', 'nome de usuário' e 'senha' para se conectar ao SQL.

Para criar um novo bloco de notas:

  1. No Azure Data Studio, selecione Arquivo, selecione Novo Bloco de Anotações.
  2. No bloco de anotações, selecione kernel Python3, selecione +código.
  3. Cole o código no bloco de anotações, selecione Executar tudo.
import pyodbc
import pandas as pd
# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'servername' 
database = 'AdventureWorks' 
username = 'yourusername' 
password = 'databasename'  
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
# select 26 rows from SQL table to insert in dataframe.
query = "SELECT [CountryRegionCode], [Name] FROM Person.CountryRegion;"
df = pd.read_sql(query, cnxn)
print(df.head(26))

Output

O print comando no script anterior exibe as linhas de dados do pandas dataframe df.

CountryRegionCode                 Name
0                 AF          Afghanistan
1                 AL              Albania
2                 DZ              Algeria
3                 AS       American Samoa
4                 AD              Andorra
5                 AO               Angola
6                 AI             Anguilla
7                 AQ           Antarctica
8                 AG  Antigua and Barbuda
9                 AR            Argentina
10                AM              Armenia
11                AW                Aruba
12                AU            Australia
13                AT              Austria
14                AZ           Azerbaijan
15                BS         Bahamas, The
16                BH              Bahrain
17                BD           Bangladesh
18                BB             Barbados
19                BY              Belarus
20                BE              Belgium
21                BZ               Belize
22                BJ                Benin
23                BM              Bermuda
24                BT               Bhutan
25                BO              Bolivia

Próximos passos