2003031118—李伟—Python数据分析五一假期作业—MySQL的安装以及使用
| 项目 | 期中试卷 |
| 课程班级博客链接 | 20级数据班(本) |
| 这个作业要求链接 | 作业要求 |
| 博客名称 | 2003031118—李伟—Python数据分析五一假期作业—MySQL的安装以及使用 |
| 要求 | 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)。 |
《Python数据分析》课程期中上机考试题目
一、分析1996~2015年人口数据特征间的关系(1题50分,共50分)
考查知识点:掌握pyplot常用的绘图参数的调节方法;掌握子图的绘制方法;掌握绘制图形的保存与展示方法;掌握散点图和折线图的作用与绘制方法。
需求说明:
人口数据总共拥有6个特征,分别为年末总人口、男性人口、女性人口、城镇人口、乡村人口和年份。查看各个特征随着时间推移发生的变化情况可以分析出未来男女人口比例、城乡人口变化的方向。
截图如下:


要求:
(1)使用NumPy库读取人口数据。
(2)创建画布,并添加子图。
(3)在两个子图上分别绘制散点图和折线图。
(4)保存,显示图片。
(5)分析未来人口变化趋势
1 import numpy as np
2 import matplotlib.pyplot as plt
3 #使⽤numpy库读取⼈⼝数据
4 data=np.load('D:/桌面/python期中考/populations.npz',allow_pickle=True)
5 print(data.files)#查看⽂件中的数组
6 print(data['data'])
7 print(data['feature_names'])
8 plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
9 plt.rcParams['axes.unicode_minus'] = False# 防止字符无法显示
10 name=data['feature_names']#提取其中的feature_names数组,视为数据的标签
11 values=data['data']#提取其中的data数组,视为数据的存在位置
12 p1=plt.figure(figsize=(12,12))#确定画布⼤⼩
13 pip1=p1.add_subplot(2,1,1)#创建⼀个两⾏⼀列的⼦图并开始绘制
14 #在⼦图上绘制散点图
15 plt.scatter(values[0:20,0],values[0:20,1])#,marker='8',color='red'
16 plt.ylabel('总人口(万⼈)')
17 plt.legend('年末')
18 plt.title('1996~2015年末与各类人口散点图')
19 pip2=p1.add_subplot(2,1,2)#绘制⼦图2
20 plt.scatter(values[0:20,0],values[0:20,2])#,marker='o',color='yellow'
21 plt.scatter(values[0:20,0],values[0:20,3])#,marker='D',color='green'
22 plt.scatter(values[0:20,0],values[0:20,4])#,marker='p',color='blue'
23 plt.scatter(values[0:20,0],values[0:20,5])#,marker='s',color='purple'
24 plt.xlabel('时间')
25 plt.ylabel('总人口(万人)')
26 plt.xticks(values[0:20,0])
27 plt.legend(['男性','女性','城镇','乡村'])
28 #在⼦图上绘制折线图
29 p2=plt.figure(figsize=(12,12))
30 p1=p2.add_subplot(2,1,1)
31 plt.plot(values[0:20,0],values[0:20,1])#,linestyle = '-',color='r',marker='8'
32 plt.ylabel('总人口(万人)')
33 plt.xticks(range(0,20,1),values[range(0,20,1),0],rotation=45)#rotation设置倾斜度
34 plt.legend('年末')
35 plt.title('1996~2015年末总与各类人口折线图')
36 p2=p2.add_subplot(2,1,2)
37 plt.plot(values[0:20,0],values[0:20,2])#,'y-'
38 plt.plot(values[0:20,0],values[0:20,3])#,'g-.'
39 plt.plot(values[0:20,0],values[0:20,4])#,'b-'
40 plt.plot(values[0:20,0],values[0:20,5])#,'p-'
41 plt.xlabel('时间')
42 plt.ylabel('总人口(万人)')
43 plt.xticks(values[0:20,0])
44 plt.legend(['男性','女性','城镇','乡村'])
45 #显⽰图⽚
46 plt.show()
运行截图


二、读取并查看P2P网络贷款数据主表的基本信息(1题10分,共10分)
考查知识点:掌握常见的数据读取方式;掌握DataFrame常用属性与方法;掌握基础时间数据处理方法;掌握分组聚合的原理与方法;掌握透视表与交叉表的制作。
需求说明:
P2P贷款主表数据主要存放了网贷用户的基本信息。探索数据的基本信息,能够洞察数据的整体分布、数据的类属关系、从而发现数据间的关联。
要求:
(1)使用ndim、shape、memory_usage属性分别查看维度、大小、占用内存信息。
1 import os
2 import pandas as pd
3 master = pd.read_csv('D:/桌面/python期中考/Training_Master.csv',encoding='gbk')
4 print('P2P网络贷款主表数据的维度为:',master.ndim)
5 print('P2P网络贷款主表数据的形状大小为:',master.shape)
6 print('P2P网络贷款主表数据的占用内存为:',master.memory_usage)
7 #代码16-2
8 print('P2P网络贷款主表数据的描述性统计为:\n',master.describe())
运行截图

三、提取用户信息更新表和登录信息表的时间信息(1题10分,共10分)
考查知识点:掌握常见的数据读取方式;掌握DataFrame常用属性与方法;掌握基础时间数据处理方法;掌握分组聚合的原理与方法;掌握透视表与交叉表的制作。
需求说明:
用户信息更新表和登录信息表汇总均存在大量的时间数据,提取时间数据内存在的信息,一方面可以加深对数据的理解,另一方面能够探索这部分信息和目标的关联程度。同时用户登录时间、借款成交时间、用户信息更新时间这些时间的时间差信息冶能反映出P2P网络贷款不同用户的行为信息。
要求:
(1)使用to_datetime函数转换用户信息更新表和登录信息表的时间字符串。
1 import pandas as pd
2 LogInfo = pd.read_csv('D:/桌面/python期中考/Training_LogInfo.csv',encoding='gbk')
3 Userupdate = pd.read_csv('D:/桌面/python期中考//Training_Userupdate.csv',encoding='gbk')
4 # 转换时间字符串
5 LogInfo['Listinginfo1']=pd.to_datetime(LogInfo['Listinginfo1'])
6 LogInfo['LogInfo3']=pd.to_datetime(LogInfo['LogInfo3'])
7 print('转换登录信息表的时间字符串前5行:\n',LogInfo.head())
8 Userupdate['ListingInfo1']=pd.to_datetime(Userupdate['ListingInfo1'])
9 Userupdate['UserupdateInfo2']=pd.to_datetime(Userupdate['UserupdateInfo2'])
10 print('转换用户信息更新表的时间字符串前5行:\n',Userupdate.head())
运行截图

四、使用分组聚合方法进一步分析用户信息更新表和登录信息表(1题30分,共30分)
考查知识点:掌握常见的数据读取方式;掌握DataFrame常用属性与方法;掌握基础时间数据处理方法;掌握分组聚合的原理与方法;掌握透视表与交叉表的制作。
需求说明:
分析用户信息更新表和登录信息表时,除了提取时间本身的信息外,还可以结合用户编号进行分组聚合,然后进行组内分析。通过组内分析可以得出每组组内的最早和最晚信息更新时间、最早和最晚登录时间、信息更新的次数、登录的次数等信息。
要求:
(1)使用groupby方法对用户信息更新表和登录信息表进行分组。
(2)使用agg方法求取分组后的最早和最晚更新及登录时间。
(3)使用size方法求取分组后的数据的信息更新次数与登录次数。
1 import pandas as pd
2 import numpy as np
3 LogInfo = pd.read_csv('D:/桌面/python期中考/Training_LogInfo.csv',encoding='gbk')
4 Userupdate = pd.read_csv('D:/桌面/python期中考/Training_Userupdate.csv',encoding='gbk')
5 # 使用groupby方法对用户信息更新表和登录信息表进行分组
6 LogGroup = LogInfo[['Idx','LogInfo3']].groupby(by = 'Idx')
7 UserGroup = Userupdate[['Idx','UserupdateInfo2']].groupby(by = 'Idx')
8 #代码18-2
9 # 使用agg方法求取分组后的最早,最晚,更新登录时间
10 print('分组后的最早登录时间为:\n',LogGroup.agg(np.min))
11 print('分组后的最晚登录时间为:\n',LogGroup.agg(np.max))
12 print('分组后的最早更新时间为:\n',UserGroup.agg(np.min))
13 print('分组后的最晚更新时间为:\n',UserGroup.agg(np.max))
14 #代码18-3
15 # 使用size方法求取分组后的数据的信息更新次数与登录次数
16 print('分组后的数据的信息更新次数为:\n',LogGroup.size())
17 print('分组后的数据的登录次数为:\n',UserGroup.size())
运行截图



2003031118—李伟—Python数据分析五一假期作业—MySQL的安装以及使用的更多相关文章
- 2003031121-浦娟-python数据分析五一假期作业
项目 内容 课程班级博客链接 20级数据班(本) 这个作业要求链接 Python作业 博客名称 2003031121-浦娟-python数据分析五一假期作业 要求 每道题要有题目,代码(使用插入代码, ...
- 2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用
项目 要求 课程班级博客链接 20级数据班(本) 作业要求链接 Python第七周作业 博客名称 2003031121--浦娟--Python数据分析第七周作业--MySQL的安装及使用 要求 每道题 ...
- 2003031121-浦娟-python数据分析第四周作业-第二次作业
项目 内容 课程班级博客链接 20级数据班(本) 作业链接 Python第四周作业第二次作业 博客名称 2003031121-浦娟-python数据分析第四周作业-matolotlib的应用 要求 每 ...
- 假期作业02:安装JDK与文本编辑器并编写第一个Java程序
假期作业02:安装JDK与文本编辑器并编写第一个Java程序 一.安装JDK与文本编辑器并编写第一个java程序 首先在oracle官网(需要创建账号,进行登录后方可使用)按照自己的需求下载JDK(h ...
- 2003031121-浦娟-python数据分析第三周作业-第一次作业
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
- Python数据分析(二): Numpy技巧 (2/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- Python数据分析(二): Numpy技巧 (3/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- 零基础学习Python数据分析
网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开.数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客.书籍.所以就有了本文,希望能 ...
- Python数据分析开发环境
准备工作 下载并安装最新版本的Anaconda 下载并安装最新版本的Visual Studio Code 编辑器 Tips: 可以选择自己喜欢并且熟悉的编辑器或IDE.如:VIM.Emacs.Note ...
随机推荐
- 攻防世界-easyphp(前导数字字符串、数字字符串、数字弱类型比较)
一道php代码审计题,利用了字符与数字弱类型比较的漏洞. 一.基础知识 数字字符串 形如数字形式的字符串叫做数字字符串,例如:'123456','1e56112'(科学计数法),'123.4'(单纯的 ...
- 第12周 预习、实验与作业:Java并发编程
以前你编写的Java程序同时能做几件事情?有几个执行流程?main方法执行完,整个程序一定会退出吗? 最多只能做一件事 函数按着顺序执行,函数内按着语句执行.可以有多个可以有一个. 不一定.因为Mai ...
- Linux - TOP命令解析
第一行: 当前系统时间1 系统已经运行时间(在这期间没有重启过)2 users 当前有2个用户登录系统 load average:后面的三个数分别是1分钟.5分钟.15分钟的负载情况.如果这个数除以 ...
- k8s_使用k8s部署博客系统-PV PVC(二)
PV和PVC PV(PersistentVolume)在声明的时候需要指定大小和续写模式:["ReadWriteMany","ReadWriteOnce",&q ...
- vue super flow 多种形状
1 <template> 2 <v-container class="workflow-container" grid-list-xl fluid> 3 & ...
- JiaoZiVideoPlayer模拟用户点击,切换播放引擎!~
默认播放及模拟用户点击播放按钮 jzvideoPlayerStandard.startButton.performClick() 切换播放引擎及使用Ijkplayer JZVideoPlayer.se ...
- useCallback与useMemo使用场景
疑问:为什么需要useCallback和useMemo 答: 父组件变化,会引起子组件的 re-render,为了阻止子组件不必要的 re-render,需要满足两个条件: 1.子组件用 react. ...
- NVI手法实现Template Method设计模式
- 91、mysql批量删除表
## 存储过程实现 drop PROCEDURE if EXISTS rush; create PROCEDURE rush() BEGIN ## 创建临时表,插入快照数据 drop table if ...
- WC2023 游记
不是很会写游记,随便写写吧. 一些附件 讲课资料合集(压缩后 \(\rm 31MB\))太大了,可以去 U 群下载. 由于后面很多乐子,我把相关内容打包成 zip 上传上来了. 乐子合集下载链接.(这 ...