Python: Dataframes zu DB

Ich habe das folgende Wörterbuch von Dataframes aus einem Ordner von Excel-Dateien erstellt:

import os import glob import pandas as pd files = glob.glob(os.path.join("staging" + "/*.csv")) print(files) # Create an empty dictionary to hold the dataframes from csvs dict_ = {} # Write the files into the dictionary for file in files: dict_[file] = pd.read_csv(file, header = 0, dtype = str, encoding = 'cp1252').fillna('') """ Rewrite the dataframes to csv in utf8, overwriting old values for file in dict_: dict_[file].to_csv(file, encoding = 'utf-8') """ 

Wie kann ich nun jedes dataframe in eine separate Tabelle in einer sqlite Datenbank umwandeln? Ich habe versucht, folgendes zu benutzen:

 for file in files: pd.DataFrame(dict_[file].to_sql(file, conn, flavor = None, schema = None, if_exists = 'replace',index = True, index_label = None, chunksize = None, dtype = None)) 

Allerdings generiert dieser Code einen Fehler: Zu viele Werte zum Auspacken Wäre es besser, die CSVs in UTF-8 neu zu schreiben und diese Dateien zum Erstellen der DB zu verwenden?

One Solution collect form web for “Python: Dataframes zu DB”

Ihr dict_ enthält bereits die DataFrames, die Sie über Ihre dict_ Werte iterieren müssen:

 for df in dict_.values(): df.to_sql(...) 

Wenn du den Schlüssel als den Namen der Tabelle verwenden möchtest, kannst du so etwas wie:

for key, df in dict_.items(): df.to_sql(key, conn, flavor = None, schema = None, if_exists = 'replace', index = True, index_label = None, chunksize = None, dtype = None)

Auch das erste Argument der Methode to_sql sollte der Name der Tabelle sein, in die Sie Ihre Daten einfügen möchten. Es sollte ein str . Ich glaube nicht, dass du das hast. Das Argument sollte eine SQLAlchemy oder pyscopg2 (oder andere) Verbindung zu Ihrer Datenbank sein.

Schauen Sie sich die Dokumentation an .

  • Wie lese ich datetime zurück von sqlite als datetime anstelle von string in Python?
  • Wie kann ich das sqlite3 Modul in Python 2.4 importieren?
  • Warum musst du einen Cursor beim Abfragen einer sqlite Datenbank erstellen?
  • Dynamische Import von Spalten aus csv in die Datenbanktabelle in sqlite3 und python
  • Sqlalchemy und SQLite Shared Cache
  • DateTimeField queryset gibt keine in Django zurück
  • Übergeben von Wert aus einem Dropdown-Menü zu einer Flaschenvorlage
  • Parametersatz für eine SQLite "IN" -Klausel
  • Python Sqlite3 - Daten werden nicht dauerhaft gespeichert
  • Verwenden einer WHERE ___ IN ___ Anweisung
  • Implementierung Akzent unempfindliche Suche auf Django mit sqlite
  • Python ist die beste Programmiersprache der Welt.