pd.to_sql()知道这些就够用了
发布日期:2021-05-07 14:28:04 浏览次数:16 分类:精选文章

本文共 968 字,大约阅读时间需要 3 分钟。

参见pandas.to_sql函数,主要有以下几个参数:

  • name: 输出的表名
  • con: 与read_sql中相同,数据库链接
  • if_exits: 三个模式:fail,若表存在,则不输出;replace:若表存在,覆盖原来表里的数据;append:若表存在,将数据写到原表的后面。默认为fail
  • index:是否将df的index单独写到一列中
  • index_label:指定列作为df的index输出,此时index为True
  • chunksize: 同read_sql
  • dtype: 指定列的输出到数据库中的数据类型。字典形式储存:{column_name: sql_dtype}。常见的数据类型有sqlalchemy.types.INTEGER(), sqlalchemy.types.NVARCHAR(),sqlalchemy.Datetime()等,具体数据类型可以参考
    还是以写到mysql数据库为例:
df.to_sql(name='table',           con=con,           if_exists='append',           index=False,          dtype={'col1':sqlalchemy.types.INTEGER(),                 'col2':sqlalchemy.types.NVARCHAR(length=255),                 'col_time':sqlalchemy.DateTime(),                 'col_bool':sqlalchemy.types.Boolean          })

**注:**如果不提供dtype,to_sql会自动根据df列的dtype选择默认的数据类型输出,比如字符型会以sqlalchemy.types.TEXT类型输出,相比NVARCHAR,TEXT类型的数据所占的空间更大,所以一般会指定输出为NVARCHAR;而如果df的列的类型为np.int64时,将会导致无法识别并转换成INTEGER型,需要事先转换成int类型(用map,apply函数可以方便的转换)。

  • 参考

.

.
.
2019-01-22 21:44:45写于邹平

上一篇:MySQL、sqlalchemy、pymysql、mysqldb、DBAPI之间关系梳理(终于明白了)
下一篇:pd.read_sql()知道这些就够用了

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月16日 08时53分18秒