项目 要求
课程班级博客链接 20级数据班(本)
作业要求链接 Python第七周作业
博客名称 2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用
要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)
  • 1.安装好MySQL,连接上Navicat。
  • 2.完成课本练习(代码4-1~3/4-9~31)。

代码4-1至4-3

from sqlalchemy import create_engine
#创建一个MySQL连接器,用户名为root,密码为root1234
#地址为127.0.0.1数据库名称为testdb,编码为UTF—8
engine=create_engine("mysql+pymysql://root:root@127.0.0.1:3306/testdb?
charset=utf8")
print(engine) import pandas as pd
#使用read_sql_query查看testdb中的数据表书目
formlist=pd.read_sql_query('show tables',con=engine)
print('testdb数据表清单为:","\n ',formlist)
#使用read_sql_table读取订单详情表
detail1=pd.read_sql_table('meal_order_detail1',con=engine)
print("使用read_sql_query读取清单的长度为:",len(detail1)) detail2=pd.read_sql('select*from meal_order_detail2',con=engine)
print("使用read_sql函数+SQL语句读取的订单详情表长度为:",len(detail2)) detail3=pd.read_sql('meal_order_detail3',con=engine)
print('使用read_sql函数+SQL语句读取的订单详情表长度为:',len(detail3))
#使用to_sql存储orderDate
detail1.to_sql('test1',con=engine,index=False,if_exists='replace')
#使用read_sql读取test表
formlist1=pd.read_sql_query('show tables',con=engine)
print('新增一个表格后,testdb数据表清单为:“,”\n',formlist1)

代码4-9至4-11

#导入sqlalchemy 库的 create_engine函数
from sqlalchemy import create_engine
engine=create_engine("mysql+pymysql://root:root@127.0.0.1:3306/testdb?charset=utf8")
import pandas as pd
order1=pd.read_sql_table('meal_order_detail1',con=engine)
print("订单详情表1的长度为:",len(order1))
order2=pd.read_sql_table('meal_order_detail2',con=engine)
print("订单详情表2的长度为:",len(order2))
order3=pd.read_sql_table('meal_order_detail3',con=engine)
print("订单详情表3的长度为:",len(order3))
orderinfo=pd.read_table('E:/桌面/meal_order_info (1).csv',sep=",",encoding='gbk')
print('订单信息表的长度为:',len(orderinfo))
userinfo=pd.read_excel('E:/桌面/users (1).xlsx')
print('客户信息表的长度为:',len(userinfo))

代码4-12至4-31

detail = pd.read_sql_table('meal_order_detail1',con = engine)
'''print('订单详情的索引表为:',detail.index)
print('订单详情表的所有值为:','\n',detail.values)
print('订单详情表列名为:','\n',detail.columns)
print('订单详情表的数据类型为:','\n',detail.dtypes)''' #查看DataFrame的元素个数
print('订单详情表的元素个数为:',detail.size)
print('订单详情表的维度数为:',detail.ndim)#查看DataFrame的维度数
print('订单详情表的形状为:',detail.shape)#查看DataFrame的形状 print('订单详情表转置前形状为:',detail.shape)
print('订单详情表转置后形状为:',detail.T.shape) #使用字典访问的方式取出orderInfo中的某一列
order_id = detail['order_id']
print('订单详情表中的order_id形状为:','\n',order_id.shape) #使用访问属性的方式取出orderInfo中的菜品名称列
dishes_name = detail.dishes_name
print('订单详情表中的dishes_name的形状为:','\n',dishes_name.shape) dishes_name5 = detail['dishes_name'][:5]
print('订单详情表中的dishes_name前5个元素为;','\n',dishes_name5) orderDish = detail[['order_id','dishes_name']][:5]
print('订单详情表中的order_id和dishes_name前5个元素为;','\n',orderDish) order5 = detail[:][1:6]
print('订单详情表中的1~6元素为;','\n',order5) print('订单详情表中的前5行数据为;','\n',detail.head())
print('订单详情表中的后5行数据为;','\n',detail.tail()) dishes_name1 = detail.loc[:,'dishes_name']
print('使用loc提取dishes_name列的size为:',dishes_name1.size)
dishes_name2 = detail.iloc[:,3]
print('使用iloc提取第3列列的size为:',dishes_name2.size) orderDish1 = detail.loc[:,['order_id','dishes_name']]
print('使用loc提取order_id和dishes_name列地size为;',orderDish1.size)
orderDish2 = detail.iloc[:,[1,3]]
print('使用iloc提取第1列和第3列地size为;',orderDish2.size) print('列名为order_id和dishes_name的行名为3的数据为:\n',detail.loc[3,['order_id','dishes_name']])
print('列名为order_id和dishes_name的行名为2,3,4,5,6的数据为:\n',detail.loc[2:6,['order_id','dishes_name']])
print('列位置为1和3,,行位置为3的数据为:\n',detail.iloc[3,[1,3]])
print('列位置为1和3,,行位置为2,3,4,5,6的数据为:\n',detail.iloc[2:7,[1,3]]) #loc内部传入表达式
print('detail中order_id为458的dishes_name为:\n',detail.loc[detail['order_id']=='458',['order_id','dishes_name']])
#错误示例如下:
#print('detail中order_id为458的第1、5列数据为:\n',detail.iloc[detail['order_id']=='458',[1,5]]) print('detail中order_id为458的第1,5列数据为:\n',detail.iloc[(detail['order_id']=='458').values,[1,5]]) print('列名为dishes_name行名为 2,3,4,5,6的数据为:\n',detail.loc[2:6,'dishes_name'])
print('列位置为5,行位置为2~6的数据为:\n',detail.iloc[2:6,5])
#print('列位置为5,行名为2~6的数据为:', '\n',detail.ix[2:6,5]) #pandas的1.0.0版本后,已经对ix进行了升级和重构。 #将ordeer_id为458的变换为45800
detail.loc[detail['order_id']=='458','ordeer_id'] = '45800'
print('更改后detail中order_id为458的order_id为:\n',detail.loc[detail['order_id']=='458','order_id'])
print('更改后detail中order_id为45800的order_id为:\n',detail.loc[detail['order_id']=='45800','order_id']) detail['payment'] = detail['counts']*detail['amounts']
print('detail新增列payment的前5行为:','\n',detail['payment'].head()) detail['pay_way'] = '现金支付'
print('detail新增列pay_way的前5行为:','\n',detail['pay_way'].head()) print('删除pay_way前detail的列索引为:','\n',detail.columns)
detail.drop(labels = 'pay_way',axis = 1,inplace = True)
print('删除pay_way后detail的列索引为:','\n',detail.columns) print('删除1~10行前detail的长度为:',len(detail))
detail.drop(labels = range(1,11),axis = 0,inplace = True)
print('删除1~10行后detail的长度为:',len(detail))

2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用的更多相关文章

  1. 2003031121-浦娟-python数据分析第三周作业-第一次作业

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...

  2. 2003031121-浦娟-python数据分析五一假期作业

    项目 内容 课程班级博客链接 20级数据班(本) 这个作业要求链接 Python作业 博客名称 2003031121-浦娟-python数据分析五一假期作业 要求 每道题要有题目,代码(使用插入代码, ...

  3. 2003031121-浦娟-python数据分析第四周作业-第二次作业

    项目 内容 课程班级博客链接 20级数据班(本) 作业链接 Python第四周作业第二次作业 博客名称 2003031121-浦娟-python数据分析第四周作业-matolotlib的应用 要求 每 ...

  4. 2017-2018-1 我爱学Java 第六七周 作业

    团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...

  5. 2018-2019-1 20189221 《Linux内核原理与分析》第七周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第七周作业 实验六 分析Linux内核创建一个新进程的过程 代码分析 task_struct: struct task ...

  6. 2017-2018-1 JAVA实验站 第六、七周作业

    2017-2018-1 JAVA实验站 第六.七周作业 详情请见团队博客

  7. 2017-2018-1 JaWorld 第六、七周作业

    2017-2018-1 JaWorld 第六.七周作业 修改需求规格说明书 上次的<需求规格说明书>初稿有哪些不足? 王译潇同学回答:   1. 引言和目的性考虑的不是很周全.   2. ...

  8. 2017-2018-1 20179205《Linux内核原理与设计》第七周作业

    <Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_for ...

  9. 2019-2020-1 20199325《Linux内核原理与分析》第七周作业

    第七周作业 1.进程描述符task_struct数据结构(一) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct数据结构很 ...

随机推荐

  1. springBoot 多配置文件切换之profile

    说明: 我们平时工作,有开发环境,和生产环境,利用springboot的多profile配置,可以很轻松切换配置. 实现方式1(推荐): 配置文件命名遵循:application-{开发模式}.pro ...

  2. Java程序要操作数据库,一定要使用JDBC技术吗?

    <!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency> <groupId>mysql</groupId> <a ...

  3. Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?

    <resultMap>.<parameterMap>.<sql>.<include>. <selectKey>,加上动态 sql 的 9 个 ...

  4. 接口是否可继承(extends)接口?抽象类是否可实现 (implements)接口?抽象类是否可继承具体类(concrete class)?

    接口可以继承接口,而且支持多重继承.抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类.

  5. 使用 Spring 有哪些方式?

    使用 Spring 有以下方式: 作为一个成熟的 Spring Web 应用程序. 作为第三方 Web 框架,使用 Spring Frameworks 中间层. 用于远程使用. 作为企业级 Java ...

  6. Netty学习摘记 —— 再谈EventLoop 和线程模型

    本文参考 本篇文章是对<Netty In Action>一书第七章"EventLoop和线程模型"的学习摘记,主要内容为线程模型的概述.事件循环的概念和实现.任务调度和 ...

  7. 【C语言】预处理、宏定义、内联函数

    一.由源码到可执行程序的过程 1. 预处理: 源码经过预处理器的预处理变成预处理过的.i中间文件 1 gcc -E test.c -o test.i 2. 编译: 中间文件经过编译器编译形成.s的汇编 ...

  8. TL431常用电路整理

    熟悉电路制作的人大多对TL431并不陌生.由于TL431的动态抗阻的特性,其经常在电路设计当中被用于替代稳压二极管.不仅如此,TL431的开态响应速度快输出噪音低,并且价格低廉.因此受到电源工程师和初 ...

  9. C# 将Excel转为PDF时设置内容适应页面宽度

    将Excel转为PDF格式时,通常情况下转换出来的PDF页面都是默认的宽度大小:如果Excel表格数据的设计或布局比较宽或者数据内较少的情况,转出来的PDF要么会将原本的一个表格分割显示在两个页面,或 ...

  10. CCF201409-2 画图

    问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的例子.第一个矩形是 ...