项目  期中试卷
课程班级博客链接 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的安装以及使用的更多相关文章

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

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

  2. 2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用

    项目 要求 课程班级博客链接 20级数据班(本) 作业要求链接 Python第七周作业 博客名称 2003031121--浦娟--Python数据分析第七周作业--MySQL的安装及使用 要求 每道题 ...

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

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

  4. 假期作业02:安装JDK与文本编辑器并编写第一个Java程序

    假期作业02:安装JDK与文本编辑器并编写第一个Java程序 一.安装JDK与文本编辑器并编写第一个java程序 首先在oracle官网(需要创建账号,进行登录后方可使用)按照自己的需求下载JDK(h ...

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

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

  6. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

  7. Python数据分析(二): Numpy技巧 (2/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

  8. Python数据分析(二): Numpy技巧 (3/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

  9. 零基础学习Python数据分析

    网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开.数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客.书籍.所以就有了本文,希望能 ...

  10. Python数据分析开发环境

    准备工作 下载并安装最新版本的Anaconda 下载并安装最新版本的Visual Studio Code 编辑器 Tips: 可以选择自己喜欢并且熟悉的编辑器或IDE.如:VIM.Emacs.Note ...

随机推荐

  1. django项目初创建报错TypeError: unsupported operand type(s) for /: 'str' and 'str'

    解决办法: 'DIRS': [os.path.join(BASE_DIR, 'templates')],

  2. wpf 解决画图模糊或抗锯齿以及文字模糊或抗锯齿问题

    解决方案中使用的.Net FrameWork版本:4.6.1 画图模糊或抗锯齿: 控件属性加入  SnapsToDevicePixels="True" 文字模糊或抗锯齿: 控件属性 ...

  3. Jenkins自动化部署(linux环境)---构建任务

    用jenkins创建一个构建任务 1.这里我代码仓库用的是码云(github也是一样的)输入仓库地址.因为仓库是私有的所以会有报错提示 这里要添加Credentials.就是你码云或者github账号 ...

  4. python 查找文件夹下以特定字符开头的某类型文件 - os.walk

    Python os.walk() 方法 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下.os.walk() 方法是一个简单易用的文件.目录遍历器,可以帮助我们高效的处 ...

  5. maven 通用pom.xml

    1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http:// ...

  6. Day 11 11.1 Xpath解析

    xpath解析 xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线. ...

  7. Maxim遍历测试工具(monkey升级版)

    Maxim 对应GitHub地址:https://github.com/zhangzhao4444/Maxim,其是对Android monkey的改进工具.是基于遍历规则和高性能要求. 条件准备: ...

  8. IntelliJ IDEA 生成serialVersionUID

    1.设置Settings-->Editor->Inspections 2.实现Serializble

  9. DDD(三)DDD实战、贫血模型与充血模型

    DDD(三)DDD实战.贫血模型与充血模型 如果觉得样式不好:跳转即可 http://www.lifengying.site/(md文件复制过来有些样式会不一样) 贫血模型与充血模型 1.贫血模型:一 ...

  10. Unity 使用JIMO 做MR扫图(Vuforia) 优化

    最近在做一个用MR眼镜端扫描图片做定位用, 使用的Vuforia提供的图片识别功能. 在眼镜端因为摄像机很挫,导致扫描出来的图片 位置存在着一定的偏差.就做了个小优化. 1.扫图的角度设定,垂直于图片 ...