美文网首页Pandas学习笔记
pymysql返回数据的处理

pymysql返回数据的处理

作者: 一起学分析 | 来源:发表于2018-10-12 11:33 被阅读461次

    pymysql可以使用fetchall返回元组型数据,也可以直接使用pandas获取DataFrame格式数据。具体操作如下。

    1、首先,定义连接和查询sql

    In [1]: import pandas as pd
       ...: import pymysql
       ...: 
       ...: conn=pymysql.connect(host="localhost",user='root',passwd='20102010',
       ...:                      database='spyder_data',port=3306,use_unicode=True, charset="utf8")
       ...: sql='select * from spyder_data.anjuke_house limit 10'
    

    2、使用fetchall获取数据

    In [2]: cursor=conn.cursor()
       ...: cursor.execute(sql)
       ...: data=cursor.fetchall()
       ...: cursor.close()
       ...: conn.close()
    
    In [3]: data
    Out[3]: 
    ((1, '中铁任之健康城', '璧山', '璧山区', '建面69.9-159.14㎡', '63万元/套起', '在售住宅品牌开发商湖景', 1),
     (2, '阳光城翡丽公园', '沙坪坝', '双碑', '建面88.31-120㎡', '售价待定', '待售住宅轨交房综合体', 1),
     (3, '西永9号', '沙坪坝', '西永', '建面85-131㎡', '售价待定', '待售住宅即将开盘品牌开发商', 1),
     (4, '金科城', '北碚', '蔡家', '建面98.03-142.98㎡', '售价待定', '待售住宅双卫大主卧', 1),
     (5, '雅居乐富春山居', '渝北', '中央公园', '建面97-152㎡', '300万元/套', '在售别墅品牌开发商景观小区', 1),
     (6, '朗诗乐府', '北碚', '蔡家', '建面95-155㎡', '售价待定', '待售住宅轨交房景观小区', 1),
     (7, '保亿湖山鹿鸣', '巴南', '鹿角', '建面73.5-146.95㎡', '售价待定', '待售住宅改善房品牌开发商', 1),
     (8, '华远春风度', '江津', '江津', '建面32.43-73.7㎡', '售价待定', '在售商务公寓投资地产车位充足', 1),
     (9, '天誉智慧城', '南岸', '弹子石', '建面59-95㎡', '240万元/套', '待售住宅', 1),
     (10, '重庆奥园天悦湾', '北碚', '童家溪', '建面135-167㎡', '售价待定', '待售住宅', 1))
    

    3、使用pandas的read_sql获取数据

    pandas获取的数据会保留列名,在后期分析处理中更为方便。同时也可以像read_csv一样,添加参数以自定义数据(如自定义列名等)。

    In [4]: conn=pymysql.connect(host="localhost",user='root',passwd='20102010',
        ...:                      database='spyder_data',port=3306,use_unicode=True, charset="utf8")
        ...: sql='select * from spyder_data.anjuke_house limit 10'
    In [5]: df=pd.read_sql(sql=sql,con=conn)
    
    In [6]: df.values
    Out[6]: 
    array([[1, '中铁任之健康城', '璧山', '璧山区', '建面69.9-159.14㎡', '63万元/套起',
            '在售住宅品牌开发商湖景', 1],
           [2, '阳光城翡丽公园', '沙坪坝', '双碑', '建面88.31-120㎡', '售价待定', '待售住宅轨交房综合体',
            1],
           [3, '西永9号', '沙坪坝', '西永', '建面85-131㎡', '售价待定', '待售住宅即将开盘品牌开发商', 1],
           [4, '金科城', '北碚', '蔡家', '建面98.03-142.98㎡', '售价待定', '待售住宅双卫大主卧', 1],
           [5, '雅居乐富春山居', '渝北', '中央公园', '建面97-152㎡', '300万元/套',
            '在售别墅品牌开发商景观小区', 1],
           [6, '朗诗乐府', '北碚', '蔡家', '建面95-155㎡', '售价待定', '待售住宅轨交房景观小区', 1],
           [7, '保亿湖山鹿鸣', '巴南', '鹿角', '建面73.5-146.95㎡', '售价待定',
            '待售住宅改善房品牌开发商', 1],
           [8, '华远春风度', '江津', '江津', '建面32.43-73.7㎡', '售价待定',
            '在售商务公寓投资地产车位充足', 1],
           [9, '天誉智慧城', '南岸', '弹子石', '建面59-95㎡', '240万元/套', '待售住宅', 1],
           [10, '重庆奥园天悦湾', '北碚', '童家溪', '建面135-167㎡', '售价待定', '待售住宅', 1]],
          dtype=object)
    
    

    4、pymysql.connect参数

    pymysql.Connect()参数说明
    host(str):      MySQL服务器地址
    port(int):      MySQL服务器端口号
    user(str):      用户名
    passwd(str):    密码
    db(str):        数据库名称
    charset(str):   连接编码
    
    connection对象支持的方法
    cursor()        使用该连接创建并返回游标
    commit()        提交当前事务
    rollback()      回滚当前事务
    close()         关闭连接
    
    cursor对象支持的方法
    execute(op)     执行一个数据库的查询命令
    fetchone()      取得结果集的下一行
    fetchmany(size) 获取结果集的下几行
    fetchall()      获取结果集中的所有行
    rowcount()      返回数据条数或影响行数
    close()         关闭游标对象
    

    相关文章

      网友评论

        本文标题:pymysql返回数据的处理

        本文链接:https://www.haomeiwen.com/subject/wmbwaftx.html