如何创建.sql文件作为python数据框的输出
Posted
技术标签:
【中文标题】如何创建.sql文件作为python数据框的输出【英文标题】:How to create .sql file as output from python dataframe 【发布时间】:2021-05-18 00:51:12 【问题描述】:到目前为止我所做的工作 - 我从目录中读取所有 excel 文件,根据需要编辑它们并创建 df 表
我需要做的工作—— 我的最终目标是在当前目录中创建 .sql 文件。它包含 1) 的行,如果它们不存在,则创建数据库和表。 2)从我创建的df插入数据,以便我可以导入该结果sql文件。 (没有使用 pymysql.connect 直接连接到我的数据库)
我的问题是我需要做的工作真的是可生成的吗?如果是这样,怎么做?我有如下想法:
-
f= open("result.sql","w+") 创建结果 .sql 文件
f.write 用于创建数据库和表的每行语句
将df每一列的数据插入到db表的每一列
请帮我看看我做得对不对,如果不对,怎么办。
非常感谢
编辑:由于我有可能在没有互联网连接的计算机上运行我的程序,我想避免从那里连接到我的数据库的方法。
有关更多详细信息,我需要将此程序提供给其他人。该人运行程序,获取输出(.sql 文件)并将该 .sql 文件提供给我,以便我可以导入 .sql 文件并获取我想要获取的所有数据。
我尝试了 to_sql 的建议,这不是我想要的,但相反,我有另一个想法,只是简单地使用 INSERT 和 SELECT。另一个问题是我是否可以将正确的数据插入到 db 中的正确列。
例如,我有数据框
df = pd.DataFrame([[1, 2, 3, 4], [1, 3, 13, 4, 5], [4, 6]], columns=['A', 'B', 'C', 'D', 'E'])
A B C D E
0 1 2 3.0 4.0 NaN
1 1 3 13.0 4.0 5.0
2 4 6 NaN NaN NaN
我只想放置 A、B 和 E 列按列名选择列
【问题讨论】:
你试过pandas.DataFrame.to_sql
吗?
@SyedMohammadSannan 如果我理解正确 to_sql,在我创建数据库和表后,它会自动将 df 放入表中?
【参考方案1】:
据我了解,您可以调用pandas.DataFrame.to_sql
将存储在DataFrame 中的记录写入SQL 数据库
你需要传递的参数之一是
consqlalchemy.engine.(引擎或连接)或 sqlite3.Connection
如果文件不存在,他们都会创建一个文件。 例如:
import sqlite3
con = sqlite3.connect('example.db')
这些行将生成一个名为 example.db 的新文件。 更多详情请查看here。
【讨论】:
当它说example.db
时,我该如何修改df以便我可以选择哪些列值进入哪个表?
如何按列拆分df。比如df1 = df['column1']
。然后使用df.to_sql('table1', con)
将df1中的记录写入table1以上是关于如何创建.sql文件作为python数据框的输出的主要内容,如果未能解决你的问题,请参考以下文章
如何在python中执行mysql查询并将输出作为数据框[重复]