Inserción de datos de una tabla SQL en un dataframe de Pandas de Python
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
En este artículo se describe cómo insertar datos de SQL en un dataframe de Pandas mediante el paquete pyodbc en Python. Las filas y las columnas de datos contenidas en el dataframe se pueden usar para seguir explorando los datos.
Requisitos previos
SQL Server Management Studio para restaurar la base de datos de ejemplo en Azure SQL Managed Instance.
Azure Data Studio. Para realizar la instalación, vea Azure Data Studio.
Restaure la base de datos de ejemplo para obtener los datos de ejemplo que se usan en este artículo.
Comprobación de la base de datos restaurada
Para comprobar que la base de datos restaurada existe, consulte la tabla Person.CountryRegion:
USE AdventureWorks;
SELECT * FROM Person.CountryRegion;
Instalación de paquetes de Python
Descarga e instalación de Azure Data Studio.
Instale los siguientes paquetes de Python:
- pyodbc
- Pandas
Para instalar estos paquetes:
- En el cuaderno de Azure Data Studio, seleccione Administrar paquetes.
- En el panel Administrar paquetes, seleccione la pestaña Agregar nuevo.
- Para cada uno de los paquetes siguientes, escriba el nombre del paquete, haga clic en Buscar y, a continuación, haga clic en instalar.
Insertar datos
Use el siguiente script para seleccionar datos de la tabla Person.CountryRegion e insertarlos en un dataframe. Edite las variables de cadena de conexión: "Server", "Database", "Username" y "Password" para conectarse a SQL.
Para crear un nuevo cuaderno:
- En Azure Data Studio, seleccione Archivo y luego Nuevo cuaderno.
- En el bloc de notas, seleccione el kernel Python3 y luego el comando +Código.
- Pegue el código en el bloc de notas y seleccione Ejecutar todo.
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))
Salida
El comando print
del script anterior muestra las filas de datos del dataframe df
de 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