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

代码4-1至4-3

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

代码4-9至4-11

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

代码4-12至4-31

  1. detail = pd.read_sql_table('meal_order_detail1',con = engine)
  2. '''print('订单详情的索引表为:',detail.index)
  3. print('订单详情表的所有值为:','\n',detail.values)
  4. print('订单详情表列名为:','\n',detail.columns)
  5. print('订单详情表的数据类型为:','\n',detail.dtypes)'''
  6.  
  7. #查看DataFrame的元素个数
  8. print('订单详情表的元素个数为:',detail.size)
  9. print('订单详情表的维度数为:',detail.ndim)#查看DataFrame的维度数
  10. print('订单详情表的形状为:',detail.shape)#查看DataFrame的形状
  11.  
  12. print('订单详情表转置前形状为:',detail.shape)
  13. print('订单详情表转置后形状为:',detail.T.shape)
  14.  
  15. #使用字典访问的方式取出orderInfo中的某一列
  16. order_id = detail['order_id']
  17. print('订单详情表中的order_id形状为:','\n',order_id.shape)
  18.  
  19. #使用访问属性的方式取出orderInfo中的菜品名称列
  20. dishes_name = detail.dishes_name
  21. print('订单详情表中的dishes_name的形状为:','\n',dishes_name.shape)
  22.  
  23. dishes_name5 = detail['dishes_name'][:5]
  24. print('订单详情表中的dishes_name前5个元素为;','\n',dishes_name5)
  25.  
  26. orderDish = detail[['order_id','dishes_name']][:5]
  27. print('订单详情表中的order_id和dishes_name前5个元素为;','\n',orderDish)
  28.  
  29. order5 = detail[:][1:6]
  30. print('订单详情表中的1~6元素为;','\n',order5)
  31.  
  32. print('订单详情表中的前5行数据为;','\n',detail.head())
  33. print('订单详情表中的后5行数据为;','\n',detail.tail())
  34.  
  35. dishes_name1 = detail.loc[:,'dishes_name']
  36. print('使用loc提取dishes_name列的size为:',dishes_name1.size)
  37. dishes_name2 = detail.iloc[:,3]
  38. print('使用iloc提取第3列列的size为:',dishes_name2.size)
  39.  
  40. orderDish1 = detail.loc[:,['order_id','dishes_name']]
  41. print('使用loc提取order_id和dishes_name列地size为;',orderDish1.size)
  42. orderDish2 = detail.iloc[:,[1,3]]
  43. print('使用iloc提取第1列和第3列地size为;',orderDish2.size)
  44.  
  45. print('列名为order_id和dishes_name的行名为3的数据为:\n',detail.loc[3,['order_id','dishes_name']])
  46. print('列名为order_id和dishes_name的行名为2,3,4,5,6的数据为:\n',detail.loc[2:6,['order_id','dishes_name']])
  47. print('列位置为1和3,,行位置为3的数据为:\n',detail.iloc[3,[1,3]])
  48. print('列位置为1和3,,行位置为2,3,4,5,6的数据为:\n',detail.iloc[2:7,[1,3]])
  49.  
  50. #loc内部传入表达式
  51. print('detail中order_id为458的dishes_name为:\n',detail.loc[detail['order_id']=='458',['order_id','dishes_name']])
  52. #错误示例如下:
  53. #print('detail中order_id为458的第1、5列数据为:\n',detail.iloc[detail['order_id']=='458',[1,5]])
  54.  
  55. print('detail中order_id为458的第1,5列数据为:\n',detail.iloc[(detail['order_id']=='458').values,[1,5]])
  56.  
  57. print('列名为dishes_name行名为 2,3,4,5,6的数据为:\n',detail.loc[2:6,'dishes_name'])
  58. print('列位置为5,行位置为2~6的数据为:\n',detail.iloc[2:6,5])
  59. #print('列位置为5,行名为2~6的数据为:', '\n',detail.ix[2:6,5]) #pandas的1.0.0版本后,已经对ix进行了升级和重构。
  60.  
  61. #将ordeer_id为458的变换为45800
  62. detail.loc[detail['order_id']=='458','ordeer_id'] = '45800'
  63. print('更改后detail中order_id为458的order_id为:\n',detail.loc[detail['order_id']=='458','order_id'])
  64. print('更改后detail中order_id为45800的order_id为:\n',detail.loc[detail['order_id']=='45800','order_id'])
  65.  
  66. detail['payment'] = detail['counts']*detail['amounts']
  67. print('detail新增列payment的前5行为:','\n',detail['payment'].head())
  68.  
  69. detail['pay_way'] = '现金支付'
  70. print('detail新增列pay_way的前5行为:','\n',detail['pay_way'].head())
  71.  
  72. print('删除pay_way前detail的列索引为:','\n',detail.columns)
  73. detail.drop(labels = 'pay_way',axis = 1,inplace = True)
  74. print('删除pay_way后detail的列索引为:','\n',detail.columns)
  75.  
  76. print('删除1~10行前detail的长度为:',len(detail))
  77. detail.drop(labels = range(1,11),axis = 0,inplace = True)
  78. 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. Jquery是什么?有什么作用?

    Jquery是继prototype之后又一个优秀的Javascrīpt框架.它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safar ...

  2. springcloud如何实现服务的注册?

    1.服务发布时,指定对应的服务名,将服务注册到 注册中心(eureka zookeeper)2.注册中心加@EnableEurekaServer,服务用@EnableDiscoveryClient,然 ...

  3. IDEA 创建javaWeb以及Servlet

    1.新建项目 2.Web工程设置:点击项目名称,按F4 (1)配置sources:在WEB-INF下新建两个文件夹classes和lib (2)配置path:刚刚创建的classes文件夹路径 (3) ...

  4. 什么是 AQS ?

    AQS 是 AbustactQueuedSynchronizer 的简称,它是一个 Java 提高的底层同步工具类,用一个 int 类型的变量表示同步状态,并提供了一系列的 CAS 操作来管理这个同步 ...

  5. java-設計模式-生成器

    生成器模式Bulider 使你能够分步骤创建复杂对象. 该模式允许你使用相同的创建代码生成不同类型和形式的对象. 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示. 将一个复杂的 ...

  6. HTML 5中不同的新表单元素类型是什么?

    HTML 5推出了10个重要的新的表单元素: Color. Date Datetime-local Email Time Url Range Telephone Number Search

  7. python中模块制作、发布、安装

    模块的发布 需要在当前目录下 模块的安装 真实制作发布一个包 包的制作 (1)将写好的包放在moudelTest目录下 (2)moudelTest目录下创建一个setup.py文件(格式上面有介绍) ...

  8. ubuntu root密码问题

    安装完Ubuntu后忽然意识到没有设置root密码,不知道密码自然就无法进入根用户下.到网上搜了一下,原来是这麽回事.Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码.我们可 ...

  9. hive从入门到放弃(四)——分区与分桶

    今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...

  10. JSTL详解(常用标签以及c:forEach遍历集合)

    JSTL标签 一. JSTL的简介 1. 什么是JSTL 2. JSTL常用标签库 3. JSTL使用步骤 二. 核心标签库常用标签 1. c: set 标签 2. c: out 标签 3. c: i ...