[PYTHON] Je veux INSÉRER un DataFrame dans MSSQL

À propos de cet article

Il a été créé après avoir pensé qu'il y aurait un moyen d'insérer une grande quantité de données aussi facilement que possible lorsque vous souhaitez stocker les données dans DataFrame avec .read_csv etc. dans MSSQL. l'insertion en masse n'est pas utilisée en supposant que vous n'êtes pas autorisé.

Il faut environ 30 minutes pour INSÉRER 1 million de lignes. S'il vous plaît laissez-moi savoir s'il existe une meilleure façon.

mssql_insert.py


#! /usr/bin/env python
# -*- coding: utf-8 -*-
# python 3.5
import pymssql
import pandas as pd

#Préparation
table_name = '[db].[dbo].[sample_table]'
#Spécification de type de la table de destination INSERT
columns = ['%s', '%s', '%d', '%d', '%d', '%d']

#Créer un DataFrame
df = pd.DataFrame(...)

#Génération d'instructions INSERT
args = dict(table=table_name, columns=', '.join(columns))
sql = 'INSERT INTO {table} VALUES ({columns})'.format(**args)

#Convertir NaN en Aucun
df = df.astype(object).where(pd.notnull(df), None)

params = [tuple(x) for x in df.values]

#Exécution SQL
cnn = pymssql.connect(host="server", user="sa", password="password", database="db")
cur = cnn.cursor()
cur.executemany(sql, params)
cnn.commit()
cur.close()

Recommended Posts

Je veux INSÉRER un DataFrame dans MSSQL
Je veux imprimer dans la notation d'inclusion
Je veux créer un environnement Python
Je veux faire de matplotlib un thème sombre
Je souhaite créer facilement un modèle de bruit
Je veux créer une fenêtre avec Python
Je veux faire un jeu avec Python
Je ne veux pas passer un test de codage
Je souhaite créer un type d'implémentation pouvant être branché
Je veux trouver facilement une délicieuse boutique
Je veux écrire dans un fichier avec Python
Je souhaite télécharger une application Django sur heroku
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux répéter plusieurs fois un générateur Python
Je veux que DQN Puniki frappe un home run
100 coups sur le traitement d'image !! (021-030) Je veux faire une pause ...
Je veux donner un group_id à une trame de données pandas
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Je veux faire la transition avec un bouton sur le ballon
Je veux escalader une montagne avec l'apprentissage par renforcement
Je veux écrire en Python! (2) Écrivons un test
Je veux trouver un package populaire sur PyPi
Je veux échantillonner au hasard un fichier avec Python
Je souhaite créer facilement un environnement de développement basé sur un modèle
Je veux travailler avec un robot en python.
Je veux diviser une chaîne de caractères avec hiragana
Je souhaite installer un package de Php Redis
[Python] Je veux faire d'une liste imbriquée un taple
Je souhaite créer manuellement une légende avec matplotlib
Je souhaite envoyer automatiquement un e-mail de création d'entreprise
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux lier une variable locale avec lambda
Je veux un générateur de mox
Je veux résoudre SUDOKU
Je veux un générateur mox (2)
7rep - Insérer Dataframe dans Elasitcsearch
Je veux créer un éditeur de blog avec l'administrateur de django
Je veux démarrer un environnement Jupyter avec une seule commande
[Python] Je souhaite obtenir un ensemble commun entre numpy
Je veux démarrer beaucoup de processus à partir de python
Je veux faire une macro de clic avec pyautogui (désir)
Je veux générer automatiquement un nom de groupe de metal moderne
[Chaîne de Markov] J'ai essayé de lire les citations en Python.
Je veux faire une macro de clic avec pyautogui (Outlook)
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Je veux installer le package de requirements.txt avec poésie
Je souhaite envoyer un message de Python à LINE Bot
[Visualisation] Je veux dessiner un beau graphique avec Plotly
Je veux ajouter un joli complément à input () en python
Je veux créer un Dockerfile pour le moment.
Je veux comprendre à peu près systemd
Je veux gratter des images et les former
Je veux faire ○○ avec les Pandas
Je veux copier l'annotation de yolo
Je veux déboguer avec Python
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
Je souhaite importer des notes Google Keep dans Bear (application mémo)
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Configuration MacBookPro Après tout, je veux faire une installation propre