Com utilitzar SQL a Python

SQL, que significa llenguatge de consulta estructurat, és un llenguatge de programació en el qual l’usuari consulta bases de dades relacionals. Els científics de dades utilitzen SQL a Python en una varietat d’instàncies, dictades pel cas d’ús o per preferència personal. SQL s’utilitza principalment per organitzar dades, especialment en consultes d’entrenament, així com per a l’anàlisi ad-hoc dels resultats del model. Diverses altres posicions també poden obtenir els beneficis d’SQL, com ara enginyers de programari, analistes de dades i negocis i enginyers de dades.

Veurem tres mètodes per utilitzar SQL en aquest article. El primer mètode, connectar-se a la vostra base de dades SQL mitjançant el llenguatge de programació Python amb les ordres SQL tradicionals, és probablement el seu ús més tradicional. El segon mètode és utilitzar ordres SQL dins del marc de dades de Pandas amb consulta, que crec que és el més fàcil d’aquests mètodes de mostrar al vostre quadern Jupyter. Finalment, podeu executar ordres semblants a SQL dins del vostre marc de dades Pandas que funcionen de manera similar a les funcions SQL tradicionals.

Com utilitzar SQL a Python

  1. SQLite/MS-SQL Server/Oracle/MySQL/Et Cetera
  2. Consulta Pandas
  3. Consulta de marc de dades

Més de Matt Przybyla5 preguntes que cal esperar a la vostra entrevista de treball de ciència de dades

SQLite/MS-SQL Server/Oracle/MySQL/Et Cetera

Parlarem de dues de les moltes biblioteques/mòduls que podeu utilitzar mitjançant Python: Sqlite3 i Pyodbc.

Tots aquests mètodes funcionen de manera similar, ja que necessiten el següent:

  • importar la biblioteca de Python
  • connectar-se a la base de dades
  • creeu un objecte cursor perquè pugueu utilitzar ordres SQL

Per tant, anem a veure com connectar-se a SQLite des d’una base de dades local.

import sqlite3
connection = sqlite3.connect(“database_name.db”)
cursor = connection.cursor()
cursor.execute(“SELECT * FROM table_name”).fetchall()

En aquesta darrera línia, us podeu imaginar que també podeu executar totes les vostres ordres SQL normals (per exemple, WHERE, GROUP BY i ORDER BY, per citar-ne algunes).

El següent mòdul, Pyodbces pot utilitzar per a connexions remotes, la qual cosa us permet connectar-vos a bases de dades MS-SQL, Oracle i MySQL.

Exemple de MS-SQL Server

Tingueu en compte que aquest no és l’únic codi que podeu utilitzar per connectar-vos a aquestes bases de dades:

import pyodbc 

connection = pyodbc.connect('Driver={SQL Server};'
                      'Server=server_name;'
                      'Database=database_name;'
                      'Trusted_Connection=yes;')
# OR ADD THIS TO THAT SAME STRING ABOVE IN PLACE OF 
Trusted_Connection^

'UID=USER_ID_HERE;'
'PWD=PASSWORD_HERE;'

cursor = connection.cursor()
cursor.execute('SELECT * FROM table_name')

Exemple Oracle

substitute 'Driver={SQL Server};' for 'Driver={Oracle in 
OraClient12Home1};' 

or other Oracle driver

Exemple de MySQL

connection = pyodbc.connect('CData ODBC Driver for MySQL};'
                      'User=user_name;'
                      'Password=your_pasword;'
                      'Database=db_name;'
                      'Server=server_name;'
                      'Port=port_number;')
                      'Database=db_name;')
or other MySQL driver

Amb totes les connexions, podeu llegir SQL en un marc de dades Pandas amb aquest codi:

df = pd.read_sql('SELECT * FROM Table', connection)

Aquesta és una bona manera d’utilitzar SQL amb Python mitjançant Pandas. A molts científics de dades els agrada treballar amb marcs de dades perquè ellsés fàcil d’utilitzar i funciona bé amb les biblioteques Python de ciència de dades i aprenentatge automàtic. Per exemple, podeu consultar les vostres dades amb una de les connexions SQL tal com es descriu anteriorment i desar-les al vostre marc de dades. A continuació, podeu crear un conjunt d’entrenaments i proves a partir d’aquest conjunt de dades principal per utilitzar-lo al vostre model de ciència de dades.

Consulta Pandas

La consulta Pandas us permet consultar el vostre marc de dades directament amb Python sense cap connexió perquè vosaltressimplement treballem amb les dades que ja s’han llegit. Aquest enfocament és menys molest i encara recollirà els beneficis d’un llenguatge de consulta similar a SQL. Els avantatges inclouen la comparació de columnes per a l’anàlisi, així com altres aritmètica entre camps, per citar-ne alguns.

Aquests són alguns exemples de consulta del vostre marc de dades amb codi semblant a SQL.

# return rows where values from one column are bigger than that of 
another

df.query('column_1 > column_2')

# see which rows where the 'column_1' values
# are greater than the mean of the total column
# use the '@' to reference 'column_mean'

column_mean = df['column_1'].mean()

df.query('Confirmed_New > @column_mean')

# text conditions
# use double quotes for matching on the string value
# all the rows returned have 'green' for the 'text_column' 

df.query('text_column == "green"').head()

Aquests són només alguns dels exemples de dades de retorn que es poden utilitzar per a l’anàlisi de característiques.

Consulta de marc de dades

Aquest darrer mètode no és SQL, ni utilitza el mètode de consulta, però encara utilitza ordres semblants a SQL que podeu utilitzar dins del vostre marc de dades de Pandas amb Python.

Aquí hi ha una manera de realitzar aquest mètode:

print('Percent of data that is above 30 years old OR were born between 
2010 and 2021:”,
 100*round(df[(df['age'] > 30) | (df['birthdate'] >= '2010–01–01') & 
 (df['birthdate'] <= '2021–01–01')]['age'].count()/df.shape
 [0],4), “%”)

Aquests noms de columnes són només exemples de noms, així que també us podeu imaginar aquí que utilitzaríeu els noms de columnes reals per dur a terme aquesta acció. També podeu realitzar aquests càlculs amb el vostre conjunt de dades complet, conjunt d'entrenament i conjunt de proves per a una anàlisi senzilla.

Més informació a Data ScienceModels de conjunt: què són i quan els hauries d'utilitzar?

Acostumar-se a SQL

Per resumir, aquí teniu algunes de les maneres en què podeu utilitzar ordres SQL i semblants a SQL amb Python:

  • SQLite/MS-SQL Server/Oracle/MySQL/Et Cetera
  • Consulta Pandas
  • Consulta de marc de dades

SQL i Python són algunes eines excel·lents que no només per als científics de dades, sinó també per a molts altres que treballen amb dades. Les dades poden ser intimidants, igual que els mètodes utilitzats per treballar-hi. Tanmateix, començareu a notar una tendència que en realitat només estem organitzant dades o manipulant-les. Tant si es tracta d'un SELECCIONA * WHERE columna = 'X' o una clàusula df[df[‘column’] = 'X' mètode, aquests processos en última instància estan realitzant la mateixa acció. El mètode que trieu depèn de vosaltres o de la manera com voleu col·laborar dins de la vostra empresa amb els vostres diferents grups d'interès i equip.

.

Leave a Comment

Your email address will not be published. Required fields are marked *