Insertion de données à partir d’une table SQL dans une trame de données Python Pandas
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Cet article explique comment insérer des données SQL dans une trame de données Pandas à l’aide du package pyodbc en Python. Les lignes et les colonnes de données contenues dans la trame de données peuvent être utilisées pour une exploration plus approfondie des données.
Prérequis
SQL Server Management Studio pour restaurer l’exemple de base de données sur Azure SQL Managed Instance.
Azure Data Studio. Pour l’installer, consultez Azure Data Studio.
Exemple de restauration de base de données pour obtenir les exemples de données utilisés dans cet article.
Vérification de la base de données restaurée
Vous pouvez vérifier que la base de données restaurée existe en interrogeant la table Person.CountryRegion :
USE AdventureWorks;
SELECT * FROM Person.CountryRegion;
Installer des packages Python
Téléchargez et installez Azure Data Studio.
Installez les packages Python suivants :
- pyodbc
- pandas
Pour installer ces packages :
- Dans votre notebook Azure Data Studio, sélectionnez Gérer les packages.
- Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter nouveau.
- Pour chacun des packages suivants, entrez le nom du package, cliquez sur Rechercher, puis cliquez sur Installer.
Insertion des données
Utilisez le script suivant pour sélectionner des données de la table Person.CountryRegion et les insérer dans une trame de données. Modifiez les variables de chaîne de connexion « server », « database », « username » et « password » pour la connexion à SQL.
Pour créer un bloc-notes :
- Dans Azure Data Studio, sélectionnez Fichier, puis Nouveau notebook.
- Dans le notebook, sélectionnez le noyau Python3, puis +code.
- Collez le code dans le notebook, puis sélectionnez Tout exécuter.
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))
Sortie
La commande print
du script précédent affiche les lignes de données de la trame de données pandas
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