Comment convertir les résultats d’une requête SQL en une trame de données Pandas
- introduction
- Outils
- Exemple
- Sommaire
- Références
En tant que data scientist, vous devrez souvent extraire des données d’une table de base de données. Cette première étape de collecte de votre ensemble de données dans le processus de modélisation est généralement acquise à partir des résultats du code SQL. SQL n’est généralement pas le langage principal requis pour être un data scientist; cependant, il est important de pratiquer et d’utiliser pour obtenir votre jeu de données dans certains scénarios. Il y a cependant quelques problèmes – des allers-retours avec votre code Python, SQL et parfois, Jupyter Notebook, peuvent être aggravants. Il existe un processus très simple qui permet de résoudre ce problème. La solution consiste à écrire votre requête SQL dans votre bloc-notes Jupyter, puis à enregistrer cette sortie en la convertissant en une trame de données pandas. Ci-dessous, je vais fournir du code et un exemple qui montre ce processus simple et avantageux.
Il existe plusieurs outils clés qui composent ce processus. Tout d’abord, vous utiliserez la requête SQL que vous aviez déjà à l’origine, puis, en utilisant Python, vous référencerez la bibliothèque pandas pour convertir la sortie en une trame de données, le tout dans votre bloc-notes Jupyter.
SQL – Langage de requête structuré, la plupart des analystes de données et des ingénieurs d’entrepôt de données / base de données utilisent ce langage pour extraire des données pour le développement de rapports et de jeux de données.
--return all columns from table
SELECT * FROM TABLE
Python – l’un des principaux langages de programmation utilisés par les scientifiques des données.
# display text
print('Hello, world!')
Pandas – une bibliothèque populaire utilisée par les scientifiques des données pour lire des données provenant de diverses sources. Les données statiques peuvent être lues dans un fichier CSV. Une connexion SQL en direct peut également être connectée à l’aide de pandas qui seront ensuite convertis dans une trame de données à partir de sa sortie. Il est expliqué ci-dessous dans l’exemple.
# creating and renaming a new a pandas dataframe column
df['new_column_name'] = df['original_column_name']
Carnet Jupyter – une plate-forme / un environnement pour exécuter votre code Python (ainsi que SQL) pour votre modèle de science des données.
Dans cet exemple, j’utiliserai une base de données factice pour servir d’environnement de stockage qu’une requête SQL référencera.
Tout d’abord, importez la bibliothèque pandas et si vous le souhaitez, créez un alias « pd » pour la notation abrégée. Ensuite, créez une variable d’informations d’identification qui stocke:
- base de données / environnement SQL – PostgreSQL
- Identifiant Mot de passe
- entrepôt de données: URL de la base de données (adresse IP)
- numéro de port
- nom de la base de données
Cette variable sera une longue chaîne entourée de guillemets. La cellule suivante de votre bloc-notes Jupyter sera la requête SQL elle-même. Des pandas seront utilisés pour exécuter la requête tout en convertissant également la sortie en une trame de données. La requête est formatée en contenant l’instruction avec des guillemets triples. Après la dernière citation, une virgule sera suivie du paramètre de connexion qui correspondra à votre variable d’informations d’identification.
Voici le code de cet exemple (vous devrez utiliser vos propres informations d’identification):
# import python library
import pandas as pd# assign a variable that contains a string of your credentials
credentials = "postgresql://username:password@your_sql_connection_url:port_number/database_name"# read in your SQL query results using pandas
dataframe = pd.read_sql("""
SELECT column_1, column_2
FROM Table
WHERE column_1 > number
ORDER BY column_1
""", con = credentials)# return your first five rows
dataframe.head()
Examinez de plus près à quoi ressemble le code dans votre bloc-notes Jupyter:
Lors de la création d’une trame de données qui sera utilisée comme votre ensemble de données, il existe de nombreuses options pour collecter ces données. Parfois, un CSV est lu, tandis qu’une trame de données peut être créée en définissant des colonnes et des valeurs. Cependant, dans ce cas, nous avons vu que vous pouvez interroger à l’aide de SQL à partir de votre base de données et renvoyer ces résultats en tant que vos données qui sont finalement lues comme votre nouvelle trame de données. De là, vous pouvez suivre votre processus normal en science des données maintenant que vous avez votre trame de données. J’espère que vous avez trouvé cet article utile, merci d’avoir lu!
[1] photo par Tobias Fischer sur Unsplash, (2017)
[2] photo par Chris Ried sur Unsplash, (2018)
[3] M.Przybyla, capture d’écran de Jupyter Notebook, (2020)