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中的所有文件。我喜歡你的方法,有沒有辦法使用chunk方法並在每個'df.to_sql'後轉儲'df'來釋放RAM?我已經嘗試了'del df',但是這並沒有解放RAM。 –