[PYTHON] Ich möchte einen DataFrame in MSSQL einfügen

Über diesen Artikel

Es wurde erstellt, nachdem gedacht wurde, dass es eine Möglichkeit gibt, eine große Datenmenge so einfach wie möglich einzufügen, wenn Sie die Daten in DataFrame mit .read_csv usw. in MSSQL speichern möchten. Bulk Insert wird nicht verwendet, sofern Sie nicht autorisiert sind.

Das Einfügen von 1 Million Zeilen dauert ungefähr 30 Minuten. Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt.

mssql_insert.py


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

#Vorbereitung
table_name = '[db].[dbo].[sample_table]'
#Typspezifikation der INSERT-Zieltabelle
columns = ['%s', '%s', '%d', '%d', '%d', '%d']

#Erstellen Sie einen DataFrame
df = pd.DataFrame(...)

#Generierung von INSERT-Anweisungen
args = dict(table=table_name, columns=', '.join(columns))
sql = 'INSERT INTO {table} VALUES ({columns})'.format(**args)

#Konvertieren Sie NaN in Keine
df = df.astype(object).where(pd.notnull(df), None)

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

#SQL-Ausführung
cnn = pymssql.connect(host="server", user="sa", password="password", database="db")
cur = cnn.cursor()
cur.executemany(sql, params)
cnn.commit()
cur.close()

Recommended Posts

Ich möchte einen DataFrame in MSSQL einfügen
Ich möchte in der Einschlussnotation drucken
Ich möchte eine Python-Umgebung erstellen
Ich möchte Matplotlib zu einem dunklen Thema machen
Ich möchte einfach ein Rauschmodell erstellen
Ich möchte mit Python ein Fenster erstellen
Ich möchte ein Spiel mit Python machen
Ich möchte keinen Codierungstest machen
Ich möchte eine Art von Implementierung erstellen, die angeschlossen werden kann
Ich möchte leicht einen leckeren Laden finden
Ich möchte mit Python in eine Datei schreiben
Ich möchte eine Django-App auf Heroku hochladen
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte, dass DQN Puniki einen Homerun macht
100 Klopfen bei der Bildverarbeitung !! (021-030) Ich möchte eine Pause machen ...
Ich möchte einem Pandas-Datenrahmen eine group_id geben
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte ein beliebtes Paket auf PyPi finden
Ich möchte eine Datei mit Python zufällig testen
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte ein Paket von Php Redis installieren
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich möchte manuell eine Legende mit matplotlib erstellen
Ich möchte automatisch eine Unternehmensgründungs-E-Mail senden
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte eine lokale Variable mit Lambda binden
Ich möchte einen Mox-Generator
Ich möchte SUDOKU lösen
Ich möchte einen Mox-Generator (2)
7rep - Datenrahmen in Elasitcsearch einfügen
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
[Python] Ich möchte einen gemeinsamen Satz zwischen numpy erhalten
Ich möchte viele Prozesse von Python aus starten
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Ich möchte automatisch einen modernen Metal-Bandnamen generieren
[Markov-Kette] Ich habe versucht, die Zitate in Python einzulesen.
Ich möchte ein Klickmakro mit pyautogui (Outlook) erstellen.
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte das Paket aus den Anforderungen.txt mit Poesie installieren
Ich möchte eine Nachricht von Python an LINE Bot senden
[Visualisierung] Ich möchte mit Plotly ein schönes Diagramm zeichnen
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich möchte vorerst eine Docker-Datei erstellen.
Ich möchte systemd grob verstehen
Ich möchte Bilder kratzen und trainieren
Ich möchte ○○ mit Pandas machen
Ich möchte Yolos Anmerkung kopieren
Ich möchte mit Python debuggen
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
Ich möchte Google Keep-Notizen in Bear importieren (Memo-App)
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
MacBookPro-Setup Schließlich möchte ich eine Neuinstallation durchführen