zoukankan      html  css  js  c++  java
  • pandas,读取或存储DataFrames的数据到mysql中

    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这种自增主键允许为空
  • 相关阅读:
    【R】如何去掉数据框中包含非数值的行?
    解读NoSQL数据库的四大家族
    MapReduce
    从网站上扒网页,保存为file文件格式
    jfinal 模板引擎
    pycharm的版本对应问题
    AttributeError: module 'DBBase' has no attribute 'DBBase'
    四则运算 python
    用命令行去运行程序
    Pandas入门CNV.TXT数据分析
  • 原文地址:https://www.cnblogs.com/meitian/p/10502657.html
Copyright © 2011-2022 走看看