Inserir dados de uma tabela SQL em um dataframe Pandas do Python

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Este artigo descreve como inserir dados SQL em um dataframe Pandas usando o pacote pyodbc no Python. As linhas e colunas de dados contidos no dataframe podem ser usadas para explorar ainda mais os dados.

Pré-requisitos

Confirmar o banco de dados restaurado

Confirme se o banco de dados restaurado existe consultando a tabela Person.CountryRegion:

USE AdventureWorks;
SELECT * FROM Person.CountryRegion;

Instalar pacotes do Python

Baixe e instale o Azure Data Studio.

Instale os seguintes pacotes do Python:

  • pyodbc
  • pandas

Para instalar esses pacotes:

  1. No notebook do Azure Data Studio, selecione Gerenciar Pacotes.
  2. No painel Gerenciar Pacotes, selecione a guia Adicionar Novo.
  3. Para cada pacote a seguir, insira o nome do pacote, clique em Pesquisare em Instalar.

Inserir dados

Use o script a seguir para selecionar dados da tabela Person.CountryRegion e inserir em um dataframe. Edite as variáveis de cadeia de conexão 'server', 'database', 'username' e 'password' para se conectar ao SQL.

Para criar um notebook:

  1. No Azure Data Studio, selecione Arquivo e escolha Novo Notebook.
  2. No notebook, selecione o kernel Python3 e escolha +code.
  3. Cole o código no notebook e 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))

Saída

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

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óximas etapas