像使用mysql一样使用pandas

像使用mysql一样使用pandas

标签(空格分隔): mysql pandas


前言

pandas的DataFrame对象本质就是一张表,DataFrame对象中的index对应的就是数据库表中的id字段,DataFrame对象中的columns对应的就是数据库表中的一个个字段名称,这说明pandas的DataFrame对象和数据库中的表具有很多的相似点,而实际情况也是这样,我们可以用操作数据库类似的方法来操作pandas的DataFrame对象,本文将使用类比的方法来说明pandas对象和数据库的丝丝关联


数据库的库操作

  1. 创建数据库
    create database db1 charset utf8;
  2. 查看数据库
    show databases; show create database db1; select database();
  3. 选择数据库
    use db1;
  4. 删除数据库
    drop database db1;
  5. 修改数据库
    dlter database db1 charset utf8;

数据库的表操作

  1. 创建表
    create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] );

  2. 查看表结构:
    desc t1

  3. 复制表
    create table new_service select * from service;
  4. 删除表
    drop table 表名;
  5. 修改表

     1、修改表名
     alter table 表名 rename 新表名;
     2、增加字段
     alter table 表名 add 字段名; 数据类型
     3、删除字段
     alter table 表名 drop 字段名;
     4、修改字段
     alter table 表名 modify 字段名 数据类型;

上述部分设计到数据库的库操作和表操作,对于pandas数据则没有这些相应的操作,对数据的操作才是pandas的DataFrame对象和数据库的相似之处

数据操作:pandas和数据库的对比

  • 分别在mysql和pandas中创建数据表
    mysql中:

    create table tips (
     id int primary_key auto_increment,
     total_bill float,
     tip float,
     sex ENUM ('male','female'),
     smoker ENUM('yes','no'),
     day ENUM('mon','tue','wed','thr','fri','sat','sun'),
     time ENUM('breakfast','lunch','dinner'),
     size int;);

    DataFrame中:(应用pymysql获取表格数据,将表格数据放入DataFrame对象中)

    import pandas as pd
    import pymysql
    db = pymysql.connect('localhost','root','','db5')
    cursor = db.cursor(pymysql.cursors.DictCursor)
    cursor.execute('select * from tips;')
    data = cursor.fetchall()
    data = [list(dic.values()) for dic in data]
    df = pd.DataFrame(data1,columns['id','total_bill','tip','sex','smoker','day','time','size'])
    #这样获得的DataFrame对象会多出一列index,需要将id设为index
    df = df.set_index('id')

    表格数据如下所示:

    total_bill   tip     sex smoker  day    time  size
    id                                                    
    1        16.99  1.01  female     no  sun  dinner     2
    2        10.34  1.66    male     no  sun  dinner     3
    3        21.01  3.50    male     no  sun  dinner     3
    4        23.68  3.31    male     no  sun  dinner     3
    5        24.59  3.61  female     no  sun  dinner     4

猜你喜欢

转载自www.cnblogs.com/guanzhicheng/p/9196770.html