如何通过mysqldb将pandas数据插入数据库?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (36)

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

我的问题是:我可以直接指示mysqldb获取整个数据帧并将其插入现有的表中,还是需要对行进行迭代?

在这两种情况下,python脚本对于一个非常简单的具有ID和两个数据列的表和一个匹配的dataframe会是什么样的呢?

提问于
用户回答回答于

现在有一个to_sql方法,这是进行此操作的首选方法,而不是write_frame:

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

可以将连接设置为MySQLdb:

from pandas.io import sql
import MySQLdb

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

设置flavorwrite_frame'mysql'意味着可以写信给MySQL:

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

争论if_exists告诉pandas如何处理已经存在的表格:

if_exists: {'fail', 'replace', 'append'},违约'fail'fail*如果存在表,则什么也不做。replace如果存在表,则删除该表,重新创建它,并插入数据。append*如果存在表,则插入数据。创建如果不存在。

虽然write_frame目前认为它只在sqite上工作,看来mysql是受支持的,而且实际上有相当多的在代码库中进行MySQL测试...

用户回答回答于

你可以输出你的DataFrame作为CSV文件,然后使用mysqlimport将CSV导入到mysql...

扫码关注云+社区