我正在尝试将大小为(8760, 1574)
的数据框插入到SQLite
表中。我的代码如下:
class DatabaseWorker(object):
def __init__(self, db_name):
self.db = db_name
def create_table(self, table_name, column_names):
conn = sqlite3.connect(self.db)
cur = conn.cursor()
q1 = 'DROP TABLE IF EXISTS %s' %(table_name)
q2 = 'CREATE TABLE ' + table_name + ' ' + '(' + ', '.join(str(x) for x in column_names) + ')'
cur.execute(q1)
cur.execute(q2)
conn.commit()
conn.close()
def insert_table(self, table_name, data):
conn = sqlite3.connect(self.db)
data.to_sql(table_name, conn, if_exists='append', index=False)
conn.commit()
conn.close()
cnx = DatabaseWorker("users")
cnx.create_table("user_activity", df_final.columns.values.tolist())
cnx.create_table("user_similarity_matrix", df_transformed.columns.values.tolist())
cnx.insert_table("user_activity", df_final)
cnx.insert_table("user_similarity_matrix", df_transformed)
df_final
的大小为(249238, 7)
,而df_transformed
的大小为(8760, 1574)
。在插入df_final
时没有错误,但是在插入df_transformed
时出现了错误。错误如下所示:
在"Too many SQL variables" error in django witih sqlite3上的一个答案中提到了变量限制为999个?我能否绕过这个限制呢?感谢您提前的建议。----> 5 cnx.insert_table("user_similarity_matrix", df_transformed)
---> 30 data.to_sql(table_name, conn, if_exists='append', index=False)
pandas_sql.to_sql(frame, name, if_exists=if_exists, index=index, index_label=index_label, schema=schema, chunksize=chunksize, dtype=dtype)
OperationalError: too many SQL variables