【发布时间】:2022-01-04 20:32:43
【问题描述】:
我有多个大型 csv 文件,我想将它们合并并存储在数据库中,以便将来在 Pandas 中使用。我使用 Pandas 阅读它们并将它们作为单独但相似的表存储到 Sqlite 数据库中。
我想通过 SQL 字符串(垂直)合并行,然后在 pandas 中使用它们进行更多分析。我想知道当我们处理大文件并且内存有限(16GB)时,这是否是在熊猫和 SQL 之间来回切换的好习惯?
另外,我的代码给了我一个错误,我不确定是否存在语法问题或更重要的问题。
from sqlalchemy.sql import text
engine = create_engine('sqlite:///C:\\master.db', echo=False)
string = text("""SELECT * INTO Flows FROM (select * from "f2007-08" UNION select * from "f2009-10")""")
engine.execute(string)
【问题讨论】:
-
INSERT INTO Flows SELECT ...是使用查询结果插入表的正确语法。 -
我删除了
*bur 收到相同的错误: OperationalError: (sqlite3.OperationalError) near "INTO": syntax error [SQL: SELECT INTO Flows FROM (select * from "f2007-08" UNION select * from "f2009-10")](此错误的背景:sqlalche.me/e/13/e3q8) -
与
*无关。你的整个语法都是错误的。 -
不是
SELECT INTO,是INSERT INTO xxx SELECT。
标签: python sql pandas sqlite sqlalchemy