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
SQL Server Management Studio para restaurar o banco de dados de exemplo na Instância Gerenciada de SQL do Azure.
Azure Data Studio. Para instalá-lo, confira Azure Data Studio.
Restaure o banco de dados de exemplo para obter os dados de exemplo usados neste artigo.
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:
- No notebook do Azure Data Studio, selecione Gerenciar Pacotes.
- No painel Gerenciar Pacotes, selecione a guia Adicionar Novo.
- 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:
- No Azure Data Studio, selecione Arquivo e escolha Novo Notebook.
- No notebook, selecione o kernel Python3 e escolha +code.
- 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