#导入第三方库sqlalchemy的数据库引擎
from sqlalchemy import create_engine
#导入科学计算库
import pandas as pd
#导入绘图库
import matplotlib.pyplot as plt if __name__ == "__main__":
#建立数据库引擎
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/mymac') #建立一个基于pandas查询数据框架类的对象
sql = 'select id,name,age,gender from student'
df = pd.read_sql_query(sql,engine)
print("#建立一个基于pandas查询数据框架类的对象\n{}".format(df)) #select * from student order by age asc | desc
df0 = df.sort_values(['age','gender'],ascending=False)
print("#指定多字段排序,遵循最左原则,注意:这是矩阵数组操作,不是在数据库操作,需要重新赋值\n{}".format(df0)) df1 = df.sort_values(['age']).head(1)
print("#取年龄最小的学生,从头部取第一个\n{}".format(df1)) print('#所有字段的平均值\n{}'.format(df.mean()))
print('#矩阵 按列 求平均值\n{}'.format(df.mean(0)))
print('#矩阵 按行 求平均值\n{}'.format(df.mean(1))) #使用loc[]方法指定字段 .age指定操作数据字段
avg_age = df.loc[df['gender'] == 0].age.mean()
print("查整个班的女生的平均年龄: {}".format(avg_age)) view = df.loc[(df['age'] < avg_age) & (df['gender'] == 0)]
print("查小于全班平均年龄的女生\n{}".format(view))
print("全班平均年龄: {}".format(df.age.mean()))
print("全班年龄和: {}".format(df.age.sum()))
print("男生的年龄和: {}".format(df.loc[df['gender'] == 1].age.sum()))
print("全班最小年龄: {}".format(df.age.min()))
print(df.loc[(df['gender'] == 0) | (df['gender'] == 1)])
print("全班人数: {}".format(df.id.count()))
#排除
print(df.loc[(df['gender'] != 0) & (df['gender'] != 1)]) #修改
df.loc[3,'gender'] = 0
df.loc[3,'age'] = 18
print(df)
#取单值 nplist[2,3] nplist[2][3]
print(df.loc[3,'name'])
data = df.loc[ df['gend.er'] == 1, ['id','name']]
print("#查指定字段的数据\n{}".format(data)) """
导出excel文件
pandas的矩阵转成excel文件,需要安装一个Exel插件 pip install openpyxl
基于清华学校的镜像源安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
将dataframe写入数据表 表名,数据引擎,索引是否入库
"""
df.to_sql('student_copy',engine,index=False)
#导出excel文件
df.to_excel('student.xlsx') # 一、利用dataframe内置方法,统计 李老师班身高超过1.80的所有男生
sql_0 = "select * from student as s inner join teacher as t on s.tid = t.id where t.id = 2 and s.gender = 1"
df_0 = pd.read_sql_query(sql_0,engine)
print(df_0)
view_0 = df_0.loc[df_0['hight'] > 1.80]
print(view_0) #二、利用dataframe内置方法,统计 王老师班身高不低于李老师班女生平均身高的所有女生
sql_1 = "select * from student as s inner join teacher as t on s.tid = t.id where s.gender = 0"
df_1 = pd.read_sql_query(sql_1,engine)
print("#1、查出所有老师的班级的女生\n{}".format(df_1)) view_1 = df_1.loc[(df_1['tid'] == 2)].hight.mean()
print("#2、李老师班的女生平均身高: {}".format(view_1)) view_2 = df_1.loc[(df_1['tid'] == 1) & (df_1['hight'] > view_1)]
print(view_2) """
要求:给student 表加入字段weight,利用matplotlib 画一个散点图,将全班的身高(x轴) 和 体重(y轴) 以散点图的形式展示出来
""" #建立一个基于pandas与sqlalchemy交互的对象
sql = 'select hight,weight from student'
df = pd.read_sql_query(sql,engine)
print(df) # #定义x轴数据
x = df['hight']
y = df['weight']
# 填充数据
#s 表示点的大小和粗细 c 表示颜色
plt.scatter(x,y,s=20,c='blue')
#设置标题
plt.title('身高(x轴)/体重(y轴)')
#绘制
plt.show()

  

创建pandas和sqlalchemy的j交互对象,方便于日常的数据库的增删改查(原创)的更多相关文章

  1. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  2. django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面

    1.为test.DB数据库预先创建下面数据 1    张三    16    2015-01-02    12    李四    17    2015-01-04    13    王五    14  ...

  3. magento中Model创建以及该Model对于数据库的增删改查

    本文是按照magento英文文档照做与翻译的. Model层的实现是mvc框架的一个巨大的部分.它代表了你的应用的数据,或者说大多数应用没有数据是无用的.Magento的Model扮演着一个重要的角色 ...

  4. mogoose 创建数据库并增删改查

    下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); ...

  5. Java对象转JSON时如何动态的增删改查属性

    1. 前言 日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON字符串增加额外字段 假如我们有这样结 ...

  6. sap 创建odata服务,通过http向数据库 进行增删改查

    https://blog.csdn.net/stone0823/article/details/71057172 1:通过 事物码 se11 创建 数据库表  zemp.表 zemp中 含有empid ...

  7. 前后台交互实例二:前台通过django在数据库里面增删改查数据

    url(r'^userinfo/', views.userinfo), url(r'^userdetail-(?P<nid>\d+)/', views.userdetail), url(r ...

  8. 用泛型创建SqlServerHelper类实现增删改查(一)

    使用泛型,可以构建对数据库单表的基本增删改查. 首先有一数据库 Test_SqlServerHelper ,有2表 接下来创建项目,对数据库进行增删改查. 直接贴代码:(SqlServerHelper ...

  9. 啊啊啊啊啊啊啊今天就写,炒鸡简单 数据库Sqlite的创建,库的增删改查

    啦啦啦啦啦啦啦 写这个不用多长时间,我直接写代码注释都是些语句,Sql语句和Api来操作数据库 ,语句的参数我会注释 SQLite数据库创建数据库需要使用的api:SQLiteOpenHelper必须 ...

随机推荐

  1. 阿里云服务器建站——centos7部署apache+mysql+php

    自己也是忙活了半天,才完成了阿里云服务器的建站,这里就来分享一下. 首先如果是要自己搭建一个网站的话,除了服务器以外还要购买域名,并且要去备案,一般在哪买的域名都有备案的系统,备案的话一般要两到三个星 ...

  2. Docker 查看镜像信息

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 文章首发个人网站: https://ww ...

  3. 《IDEO,设计改变一切》(Change By Design)- 读书笔记

    一.关于IDEO与设计思维 IDEO是一家世界顶级创意公司,而作者蒂姆布朗是IDEO的CEO.当然,在未阅读本书之前,我都是不知道的,也不会主动去了解IDEO和蒂姆布朗的.那么,我为什么要去读这样一本 ...

  4. es6学习笔记-class之一概念

    前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...

  5. pycharm安装svn插件

    弄了svn的服务端和客户端,为了方便我pycharm的使用,我又在pycharm里进行了配置,要用到subversion 下载 https://sourceforge.net/projects/win ...

  6. 从大数据技术变迁猜一猜AI人工智能的发展

    目前大数据已经成为了各家互联网公司的核心资产和竞争力了,其实不仅是互联网公司,包括传统企业也拥有大量的数据,也想把这些数据发挥出作用.在这种环境下,大数据技术的重要性和火爆程度相信没有人去怀疑. 而A ...

  7. C++ 编程技巧笔记记录(持续更新)

    C++是博大精深的语言,特性复杂得跟北京二环一样,继承乱得跟乱伦似的. 不过它仍然是我最熟悉且必须用在游戏开发上的语言,这篇文章用于挑选出一些个人觉得重要的条款/经验/技巧进行记录总结. 文章最后列出 ...

  8. SpringBoot技术栈搭建个人博客【前台开发/项目总结】

    前言:写前台真的是我不擅长的东西...所以学习和写了很久很久...前台页面大概开发了两天半就开发好了,采用的静态的html和bootstrap来写,写后台的时候纠结住了...怎么说呢,写页面真的是头疼 ...

  9. 深入理解Linux内核 学习笔记(2)

    第二章 :内存寻址 略.基本同计算机组成原理中的讲述 内核代码和数据结构会存储在一个保留的页框中. 常规Linux安装在RAM物理地址0x00100000开始的地方.因为:页框0是由BIOS使用,存放 ...

  10. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...