[PYTHON] Extrayez la table de données d'Azure SQL Server avec pyodbc et essayez de la rendre numpy array / pandas dataframe

À partir de l'endroit où vous pouvez extraire la table de données dans Azure SQL Server avec la bibliothèque python appelée pyodbc, vous pouvez convertir la table au format ʻarray de numpy ou au format DataFrame de pandas`. Ceci est un mémo.

La définition de la bibliothèque, de l'environnement et de la fonction est écrite ici. ,, Veuillez donc vous y référer d'abord.

Préparation au format array / DataFrame

## libraries
import pyodbc
import numpy as np
import pandas as pd

## initial setting
##Veuillez modifier la valeur définie comme il convient
server = 'abc_server.database.windows.net'  
database = 'abc_database'  
username = 'abc_user'  
password = 'abc_password'  

##Définition des fonctions
###Définir la connexion DB
def db_connection(sv=server, db=database, un=username, pw=password):    
    cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+sv+';DATABASE='+db+';UID='+un+';PWD='+ pw)
    return cnxn.cursor()

###Problème SQL
def query_output(sql):
    cursor.execute(sql)
    row = cursor.fetchone()
    while row:  
        print row[0]  
        row = cursor.fetchone()

→ Pour la signification des paramètres, voir Trial Premise Etc.

Cas 2: Poussez le contenu de la table dans la trame de données pandas

###Connexion DB
cursor = db_connection()

###Paramètres SQL
sql = 'select * from SalesLT.Customer;'

cursor.execute(sql)
rows = cursor.fetchall()

Vérifiez le contenu des lignes ici:

>>> rows

[(1, False, u'Mr.', u'Orlando', u'N.', u'Gee', None, u'A Bike Store', u'adventure-works\\pamela0', u'[email protected]', u'245-555-0173', u'L/Rlwxzp4w7RWmEgXX+/A7cXaePEPcp+KwQhl2fJL7w=', u'1KjXYs4=', u'3F5AE95E-B87D-4AED-95B4-C3797AFCB74F', datetime.datetime(2005, 8, 1, 0, 0)),
 (2, False, u'Mr.', u'Keith', None, u'Harris', None, u'Progressive Sports', u'adventure-works\\david8', u'[email protected]', u'170-555-0127', u'YPdtRdvqeAhj6wyxEsFdshBDNXxkCXn+CRgbvJItknw=', u'fs1ZGhY=', u'E552F657-A9AF-4A7D-A645-C429D6E02491', datetime.datetime(2006, 8, 1, 0, 0)),
 (3, False, u'Ms.', u'Donna', u'F.', u'Carreras', None, u'Advanced Bike Components', u'adventure-works\\jillian0', u'[email protected]', u'279-555-0130', u'LNoK27abGQo48gGue3EBV/UrlYSToV0/s87dCRV7uJk=', u'YTNH5Rw=', u'130774B1-DB21-4EF3-98C8-C104BCD6ED6D', datetime.datetime(2005, 9, 1, 0, 0)),
 :

C'est comme un tableau (probablement, pour être exact, sous la forme de pyodbc.Row) à l'intérieur du tableau. J'essaierai de plonger dans le tableau de numpy

array_format = np.array(rows)
dataframe_format = pd.DataFrame(array_format)

Alors le format numpy ʻarray` est ...


>>>array_format
array([[1, False, u'Mr.', ..., u'1KjXYs4=',
        u'3F5AE95E-B87D-4AED-95B4-C3797AFCB74F',
        datetime.datetime(2005, 8, 1, 0, 0)],
       [2, False, u'Mr.', ..., u'fs1ZGhY=',
        u'E552F657-A9AF-4A7D-A645-C429D6E02491',
        datetime.datetime(2006, 8, 1, 0, 0)],
       [3, False, u'Ms.', ..., u'YTNH5Rw=',
        u'130774B1-DB21-4EF3-98C8-C104BCD6ED6D',
        datetime.datetime(2005, 9, 1, 0, 0)],
       ..., 
       [30116, False, u'Ms.', ..., u'HDCU1Bk=',
        u'EC409609-D25D-41B8-9D15-A1AA6E89FC77',
        datetime.datetime(2007, 7, 1, 0, 0)],
       [30117, False, u'Mr.', ..., u'iES3IZA=',
        u'6F08E2FB-1CD3-4F6E-A2E6-385669598B19',
        datetime.datetime(2005, 8, 1, 0, 0)],
       [30118, False, u'Ms.', ..., u'QhHP+y8=',
        u'2495B4EB-FE8B-459E-A1B6-DBA25C04E626',
        datetime.datetime(2006, 9, 1, 0, 0)]], dtype=object)
>>> array_format.shape
(847L, 15L)

En outre, le DataFrame de pandas


>>>dataframe_format.head()
  0      1    2        3     4           5     6                           7   \
0  1  False  Mr.  Orlando    N.         Gee  None                A Bike Store   
1  2  False  Mr.    Keith  None      Harris  None          Progressive Sports   
2  3  False  Ms.    Donna    F.    Carreras  None    Advanced Bike Components   
3  4  False  Ms.    Janet    M.       Gates  None       Modular Cycle Systems   
4  5  False  Mr.     Lucy  None  Harrington  None  Metropolitan Sports Supply   

                         8                             9             10  \
0   adventure-works\pamela0  [email protected]  245-555-0173   
1    adventure-works\david8    [email protected]  170-555-0127   
2  adventure-works\jillian0    [email protected]  279-555-0130   
3  adventure-works\jillian0    [email protected]  710-555-0173   
4      adventure-works\shu0     [email protected]  828-555-0186   

                                             11        12  \
0  L/Rlwxzp4w7RWmEgXX+/A7cXaePEPcp+KwQhl2fJL7w=  1KjXYs4=   
1  YPdtRdvqeAhj6wyxEsFdshBDNXxkCXn+CRgbvJItknw=  fs1ZGhY=   
2  LNoK27abGQo48gGue3EBV/UrlYSToV0/s87dCRV7uJk=  YTNH5Rw=   
3  ElzTpSNbUW1Ut+L5cWlfR7MF6nBZia8WpmGaQPjLOJA=  nm7D5e4=   
4  KJqV15wsX3PG8TS5GSddp6LFFVdd3CoRftZM/tP0+R4=  cNFKU4w=   

                                     13                   14  
0  3F5AE95E-B87D-4AED-95B4-C3797AFCB74F  2005-08-01 00:00:00  
1  E552F657-A9AF-4A7D-A645-C429D6E02491  2006-08-01 00:00:00  
2  130774B1-DB21-4EF3-98C8-C104BCD6ED6D  2005-09-01 00:00:00  
3  FF862851-1DAA-4044-BE7C-3E85583C054D  2006-07-01 00:00:00  
4  83905BDC-6F5E-4F71-B162-C98DA069F38A  2006-09-01 00:00:00  

>>> dataframe_format.shape
(847, 15)

On dirait que ça va.

Reference

Recommended Posts

Extrayez la table de données d'Azure SQL Server avec pyodbc et essayez de la rendre numpy array / pandas dataframe
Essayez d'extraire la table de données d'Azure SQL Server avec pyodbc
Essayez d'extraire les caractéristiques des données de capteur avec CNN
[Mémo personnel] Obtenez des données sur le Web et faites-en un DataFrame
Essayez de convertir en données ordonnées avec les pandas
(Journal 1) Comment créer, parcourir et enregistrer des données dans la base de données SQL du service Microsoft Azure avec python
Essayez d'agréger les données de musique doujin avec des pandas
Essayez d'extraire le document Azure document DB avec pydocumentdb
Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel
Comment extraire des valeurs Null et des valeurs non Null avec des pandas
Comment extraire des données qui ne manquent pas de valeur nan avec des pandas
Extraire la valeur maximale avec les pandas et modifier cette valeur
Comment extraire des données qui ne manquent pas de valeur nan avec des pandas
Renvoyez les données d'image avec Flask of Python et dessinez-les dans l'élément canvas de HTML
Essayez de le faire avec GUI, PyQt en Python
Accédez au serveur SQL de l'hôte avec python27 / pyodbc sur le conteneur
Combinez des listes dans un DataFrame avec des pandas
Créer un environnement Python et transférer des données vers le serveur
Extraire les éléments du tableau et les index dans l'ordre décroissant avec numpy
Tokyo Corona: faites une prédiction simple à partir de données ouvertes avec la fonction exponentielle curve_fit
[Python] Comment ajouter des lignes et des colonnes à une table (pandas DataFrame)
Essayez de résoudre l'itinéraire le plus court avec les données sociales Python + NetworkX +
Lisez les données du lecteur NFC connecté à Raspberry Pi 3 avec Python et envoyez-les à openFrameworks avec OSC
Mettez à jour les données en les téléchargeant sur s3 d'aws avec une commande, et supprimez les données utilisées (en chemin)