zoukankan      html  css  js  c++  java
  • Pandas操作数据库新建表&增加现有表数据

    1、连接数据库

    import pandas as pd
    import pymysql
    from sqlalchemy import create_engine
    engine = create_engine('mysql+mysqlconnector://root:admin@localhost:3306/nodb')
    

    2、新增表

    创建一个DataFrame对象

    df = pd.DataFrame({'id':[1], 'name':['a'], 'code':['a'], 'color':['a'], 'yn':[1]})
    df
    

    df.to_sql('test_tag1', engine, index=False)
    

     这样的操作之后是生成了一个新表,index参数表示不把索引写到数据库。

    3、现有表新增数据

    df.to_sql('mg_tag1', engine, index=False, if_exists='append')
    

     比上个操作增加了一个参数,表结构存在就添加数据就好了。

    PS:to_sql参数

    参数:

    name:string

    SQL表的名称。

    con:sqlalchemy.engine.Engine或sqlite3.Connection

    使用SQLAlchemy可以使用该库支持的任何数据库。

    为sqlite3.Connection对象提供了旧版支持。

    schema:string,optional

    指定架构(如果数据库支持)。如果为None,请使用默认架构。

    if_exists:{'fail','replace','append'},默认'fail'

    如果表已存在的情况如下,

    • fail:引发ValueError。
    • replace:在插入新值之前删除表。
    • append:将新值插入现有表。

    index:布尔值,默认为True

    将DataFrame索引写为列。使用index_label作为表中的列名。

    index_label:字符串或序列,默认为None

    索引列的列标签。如果给出None(默认)且 index为True,

    则使用索引名称。

    如果DataFrame使用MultiIndex,则应该给出一个sequence。

    chunksize:int,可选

    行将一次批量写入的数量。默认情况下,所有行都将立即写入。

    dtype:dict,可选

    指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型,

    或sqlite3传统模式的字符串。

    异常:

    ValueError异常

    当表已经存在且if_exists为'fail'时(默认值)。

  • 相关阅读:
    构建智慧城市的五个关键点
    构建智慧城市的五个关键点
    构建智慧城市的五个关键点
    构建智慧城市的五个关键点
    微软Project Online落地中国
    微软Project Online落地中国
    微软Project Online落地中国
    微软Project Online落地中国
    美团容器平台架构及容器技术实践
    Python爬虫入门教程 30-100 高考派大学数据抓取 scrapy
  • 原文地址:https://www.cnblogs.com/qinghuaL/p/11414086.html
Copyright © 2011-2022 走看看