pandas.DataFrame.to_sql
DataFrame.
to_sql
(name, con, flavor=None, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None)[source]
- 将存储在DataFrame中的记录写入SQL数据库。
参数: name:string
SQL表的名称
con:SQLAlchemy引擎或DBAPI2连接(传统模式)
使用SQLAlchemy可以使用该库支持的任何数据库。如果是DBAPI2对象,则只支持sqlite3。
http://docs.sqlalchemy.org/en/latest/core/engines.html
flavor:'sqlite',默认无
DEPRECATED:此参数将在以后的版本中被删除,因为如果未安装SQLAlchemy,'sqlite'是唯一支持的选项。
schema:string,default无
指定模式(如果数据库风格支持此模式)。如果没有,请使用默认模式。
if_exists:{'fail','replace','append'},default'fail '
- fail:如果表存在,不做任何事情。
- replace:如果表存在,请将其删除,重新创建并插入数据。
- append:如果表存在,请插入数据。创建如果不存在。
index:boolean,default为True
将DataFrame索引作为列编写。
index_label:字符串或序列,默认为无
索引列的列标签。如果给定None(默认),并且 index为True,则使用索引名称。如果DataFrame使用MultiIndex,则应该给出一个序列。
chunksize:int,default None
如果不是None,那么行将一次写入这个大小的批次。如果没有,所有行将一次写入。
dtype:列名称为SQL类型,默认为无
可选指定列的数据类型。SQL类型应为SQLAlchemy类型,或sqlite3后备连接的字符串。
创建DataFrame对象
http://www.cnblogs.com/nxld/p/6756492.html
chunksize参数的方式来进行大批量插入,pandas会自动将数据拆分成chunksize大小的数据块进行批量插入,其实原理类似于我在上面使用的循环插入法.在不指定这个参数的时候,pandas会一次性插入dataframe中的所有记录,
pd.io.sql.to_sql(df,'xxx',zh_con,flavor='mysql',if_exists='append',index=False,chunksize=10000) #此处的chunksize可以自定义