pandas,读取或存储DataFrames的数据到mysql中

摘自:https://www.cnblogs.com/meitian/p/10502657.html

dataFrames格式的数据是表格形式的,mysql数据库中的数据也是表格形式的,二者可以很方便的读取存储

安装依赖的包

pip install pandas
pip install sqlalchemy
pip install pymysql

使用方法 

第一步:建立mysql数据库的连接

connect_info = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format("username", "password", "host", "port", "db数据库名")
engine = create_engine(connect_info)

第二步:读取存储数据库

此步使用的engine为第一步创建的数据库连接

1、读取数据库中的内容【read_sql】

import pandas
pandas.read_sql("sql语句", engine)

 

2、存储dataFrame数据到数据库中【to_sql】

复制代码

df.to_sql(name='table表名',
          con=engine,
          if_exists='append',
          index=False,
          dtype={'IterationId': sqlalchemy.types.Integer(),
                 'title': sqlalchemy.types.NVARCHAR(length=255)
                 }
               )

复制代码

 

方法说明:

df:dataFrame格式的数据,可以通过DataFrame()方法创建一个该对象

pandas.DataFrame({"ID": [], "标题": []})

name:存储到的表名

con:第一步创建的数据库链接

if_exists:

    fail:如果表存在,什么也不做

    replace:如果表存在,drop掉表,重新创建一个表,插入数据

    append:如果表不存在,创建表插入数据;如果表存在,原表追加数据存储

dtype:表字段对应过去的类型,例子举了整形和字符两种;(列不指定类型的话会用默认类型,但是如果类型不匹配会抛错)

 

 

注意点:

1、to_sql的源数据,列名必须和数据库里对应;且不能比数据库中列名多

如果缺少列名,会直接填充缺省值

2、缺省的列,要有默认值

存储到sql的列信息可以为空,但前提是数据库表字段写了默认值;或者类似id这种自增主键允许为空

分类: python

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值