如何创建.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查询并将输出作为数据框[重复]

如何在 Python 中创建具有两列作为元组或 Pandas 数据框的单个变量?

发送带有数据框的电子邮件作为附件

如何以下拉格式存储数据框的输出

如何使用CLI命令在输入文件参数上运行Python脚本来生成输出文件