我可以从python连接到本地mysql数据库,并且可以创建,选择并插入单个行。
我的问题是:我可以直接指示mysqldb提取整个数据帧并将其插入到现有表中,还是需要遍历行?
在这两种情况下,对于具有ID和两个数据列以及匹配的数据帧的非常简单的表,python脚本的外观如何?
现在有一种to_sql方法,而不是write_frame:
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:
flavor
'mysql'
sql.write_frame(df, con=con, name='table_name_for_df', if_exists='replace', flavor='mysql')
该参数if_exists告诉熊猫表是否已经存在该如何处理:
if_exists
if_exists: {'fail', 'replace', 'append'},默认值'fail' fail:如果表存在,则不执行任何操作。 replace:如果存在表,则将其删除,重新创建并插入数据。 append:如果存在表,则插入数据。如果不存在则创建。
if_exists: {'fail', 'replace', 'append'}
'fail'
fail
replace
append
尽管write_frame文档当前建议仅在sqlite上运行,但似乎支持mysql,并且实际上在代码库中有很多mysql测试。