一尘不染

如何通过mysqldb将熊猫数据框插入数据库?

mysql

我可以从python连接到本地mysql数据库,并且可以创建,选择并插入单个行。

我的问题是:我可以直接指示mysqldb提取整个数据帧并将其插入到现有表中,还是需要遍历行?

在这两种情况下,对于具有ID和两个数据列以及匹配的数据帧的非常简单的表,python脚本的外观如何?


阅读 201

收藏
2020-05-17

共1个答案

一尘不染

更新:

现在有一种to_sql方法,而不是write_frame

df.to_sql(con=con, name='table_name_for_df', if_exists='replace', flavor='mysql')

另请注意:语法可能会在熊猫0.14中更改…

您可以使用MySQLdb建立连接:

from pandas.io import sql
import MySQLdb

con = MySQLdb.connect()  # may need to add some other options to connect

flavorof 设置write_frame'mysql'意味着您可以写入mysql:

sql.write_frame(df, con=con, name='table_name_for_df', 
                if_exists='replace', flavor='mysql')

该参数if_exists告诉熊猫表是否已经存在该如何处理:

if_exists: {'fail', 'replace', 'append'},默认值'fail'
fail:如果表存在,则不执行任何操作。
replace:如果存在表,则将其删除,重新创建并插入数据。
append:如果存在表,则插入数据。如果不存在则创建。

尽管write_frame文档当前建议仅在sqlite上运行,但似乎支持mysql,并且实际上在代码库中有很多mysql测试

2020-05-17