Méthode Pandas TO_SQL

Méthode Pandas TO_SQL
Nous comprendrons comment utiliser la fonction pandas to_sql () tout au long de ce tutoriel. Cette fonction nous permet d'enregistrer des enregistrements Pandas dans une base de données SQL.

Syntaxe de fonction

La fonction a une syntaxe comme indiqué:

Trame de données.to_sql (nom, con, schema = non, if_exists = 'fail', index = true, index_label = non, chunkSize = non, dType = non, méthode = aucun)

Paramètres de fonction

Discutons des paramètres de fonction et de ce que chacun implique:

  1. Nom - fait référence à la table SQL dans laquelle les données sont enregistrées.
  2. Consigne de la connexion au moteur de la base de données. Le moteur Sqlalchemy gère la connexion à la base de données. Par conséquent, vous pouvez utiliser n'importe quelle base de données prise en charge par la bibliothèque.
  3. schéma - spécifie le schéma cible sous lequel pour sauver les données.
  4. if_exists - Définit les actions si le tableau spécifié existe déjà dans le schéma cible. Les options acceptées incluent:
    • -Échec - soulève une erreur.
    • Remplacer - laisse tomber la table et ajoute la nouvelle table.
    • Ajouter - Insère les nouvelles données aux existants.
  5. Index - Permet d'écrire l'index de DataFrame en tant que colonne. Si l'index a un nom, la fonction l'utilisera comme nom de la colonne dans la base de données.
  6. index_label - Si l'index_column n'a pas de nom, vous pouvez en spécifier un en utilisant ce paramètre.
  7. ChunkSize - Spécifie le nombre de lignes qui peuvent être écrites à la fois. Si cela n'est pas spécifié, la fonction écrira toutes les lignes à la fois.
  8. DTYPE - Spécifie le type de données pour les colonnes.
  9. Méthode - Ce paramètre définit la méthode SQL utilisée pour insérer les données. Les valeurs acceptées incluent:
    • Aucun - utilise l'insert SQL standard.
    • Multi - - permet de passer plusieurs valeurs dans une seule instruction.

En savoir plus sur les méthodes d'insertion SQL.

Valeur de retour de fonction

La fonction renvoie le nombre de lignes affectées par l'opération SQL.

Exemple:

Dans cet exemple, nous insérerons le DataFrame suivant dans une base de données MySQL.

https: // www.dropbox.com / s / kql82sncnu7j3c1 / films.CSV?dl = 0

Étape 1: Commencez par importer les bibliothèques requises et chargez le dataframe.

Importer des pandas en tant que PD
df = pd.read_csv ('films.csv ', index_col = [0])

Une fois le dataframe chargé, passez à l'étape suivante.

Étape 2: L'étape suivante consiste à créer un schéma de base de données. Ouvrez votre terminal et connectez-vous à votre instance MySQL.

$ mysql -u root -p

Une fois connecté, créez un schéma de base de données comme indiqué:

mysql> Créer une base de données pandas_sample;

Le code ci-dessus doit créer une base de données appelée 'pandas_sample.'. N'hésitez pas à changer cela pour votre opération souhaitée.

Étape 3: Ensuite, revenons à notre code Python et connectons à la base de données. Nous pouvons commencer par importer sqlalchemy et créer la connexion au moteur.

De Sqlalchemy Import Create_Engine
moteur = Create_Engine ("mysql + pymysql: // root: mysql @ 127.0.0.1: 3306 / pandas_sample?charse = utf8mb4 ")

Dans l'exemple ci-dessus, nous commençons par importer le module Create_Engine à partir de la bibliothèque Sqlalchemy.

Nous créons ensuite une connexion au moteur MySQL à l'aide de la syntaxe ci-dessous:

Create_Engine ("MySQL + PyMySQL: // User: Pass @ Host: Port / Dbname

Remarque: Si vous n'avez pas installé la bibliothèque PymySQL, le code ci-dessus renvoie une erreur.

Vous pouvez résoudre ce problème en installant la bibliothèque comme indiqué:

PIP3 Installer Pymsql

Étape 4: Une fois que nous avons tout en cours d'exécution, nous pouvons enregistrer le Nourned DataFrame dans la base de données à l'aide de la fonction TO_SQL () comme indiqué:

df.to_sql ('films', con = moteur)

Le code ci-dessus doit créer un nouveau tableau appelé «films» et insérer les valeurs de dataframe.

Pour afficher tous les enregistrements dans la base de données, nous pouvons s'exécuter:

mysql> Utilisez pandas_sample;
mysql> sélectionner * dans les films;

Cela devrait renvoyer les enregistrements de la dataframe comme indiqué:

Vous pouvez également utiliser Python pour obtenir les enregistrements de la base de données comme indiqué:

moteur.exécuter ('sélectionner * dans les films').fetchall ()

Les valeurs résultantes sont telles que montrées:

Conclusion

Cet article explore comment utiliser la fonction pandas to_sql () pour enregistrer un dataframe dans une base de données MySQL.