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。 –