1
私は大量の.csv
ファイルをsqliteデータベースに入れたいと思います。ほとんどのファイルには同じ列名が含まれていますが、余分な列を持つファイルもあります。異なる列名を持つcsvファイルからsqliteテーブルを作成する
私が試したコードです(一般的なように変更された):
import os
import pandas as pd
import sqlite3
conn = sqlite3.connect('test.db')
cur = conn.cursor()
os.chdir(dir)
for file in os.listdir(dir):
df = pd.read_csv(file)
df.to_sql('X', conn, if_exists = 'append')
それは私がエラーを取得するテーブルX
にない列を使用してファイルに遭遇:
OperationalError: table X has no column named ColumnZ
テーブルを新しい列に追加し、前の行をNaN
で埋め込むようにコードを変更するにはどうすればよいですか?
残念ながら、私はすべてのファイルをRAMに収めることができません。私はあなたの方法が好きですが、チャンクメソッドを使って 'df'をダンプして各df.to_sqlの後にRAMを解放する方法はありますか?私は 'del df'を試しましたが、それはRAMを解放していません。 –