Python 通过Pandas DataFrame 对execl文件自动创表

pandas.DataFrame.to_sql 

DataFrame.to_sql(nameconflavor=Noneschema=Noneif_exists='fail'index=Trueindex_label=Nonechunksize=Nonedtype=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可以自定义
posted @ 2017-10-13 11:23  珈子  阅读(956)  评论(0编辑  收藏  举报