Insertion de données à partir d’une table SQL dans une trame de données Python Pandas

S’applique à :SQL ServerAzure SQL DatabaseAzure 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

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 :

  1. Dans votre notebook Azure Data Studio, sélectionnez Gérer les packages.
  2. Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter nouveau.
  3. 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 :

  1. Dans Azure Data Studio, sélectionnez Fichier, puis Nouveau notebook.
  2. Dans le notebook, sélectionnez le noyau Python3, puis +code.
  3. 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 pandasdf.

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

Étapes suivantes