当前位置: 首页 >数据库 > 2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用

2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用

项目 内容
课程班级博客链接 20级数据班 
作业博客链接 Python数据分析五一假期作业
博客名称 2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用
要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)。

 

 

 

 

 

 

一、分析1996~2015年人口数据特征间的关系(150分,共50分)

考查知识点:掌握pyplot常用的绘图参数的调节方法;掌握子图的绘制方法;掌握绘制图形的保存与展示方法;掌握散点图和折线图的作用与绘制方法。

需求说明:

人口数据总共拥有6个特征,分别为年末总人口、男性人口、女性人口、城镇人口、乡村人口和年份。查看各个特征随着时间推移发生的变化情况可以分析出未来男女人口比例、城乡人口变化的方向。

截图如下:

要求:

(1)使用NumPy库读取人口数据。

(2)创建画布,并添加子图。

(3)在两个子图上分别绘制散点图和折线图。

(4)保存,显示图片。

 

#导入模块import numpy as npimport matplotlib.pyplot as plt#使⽤numpy库读取⼈⼝数据data=np.load("C:/Users/Administrator/Desktop/populations.npz",allow_pickle=True)#读取文件,返回输入数组print(data.files)#查看⽂件中的数组print(data['data'])print(data['feature_names'])plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示plt.rcParams['axes.unicode_minus'] = False# 防止字符无法显示name=data['feature_names']#提取其中的feature_names数组,视为数据的标签values=data['data']#提取其中的data数组,视为数据的存在位置#设置画布p1=plt.figure(figsize=(12,12))#确定画布⼤⼩pip1=p1.add_subplot(2,1,1)#创建⼀个两⾏⼀列的⼦图并开始绘制#在⼦图上绘制散点图plt.scatter(values[0:20,0],values[0:20,1])#,marker='8',color='red'plt.ylabel('总人口(万⼈)')#添加Y轴的名称plt.legend('年末')#添加图列plt.title('1996~2015年末与各类人口散点图')#添加散点图标题pip2=p1.add_subplot(2,1,2)#绘制⼦图2plt.scatter(values[0:20,0],values[0:20,2])#,marker='o',color='yellow'plt.scatter(values[0:20,0],values[0:20,3])#,marker='D',color='green'plt.scatter(values[0:20,0],values[0:20,4])#,marker='p',color='blue'plt.scatter(values[0:20,0],values[0:20,5])#,marker='s',color='purple'plt.xlabel('时间')plt.ylabel('总人口(万人)')plt.xticks(values[0:20,0])plt.legend(['男性','女性','城镇','乡村'])#在⼦图上绘制折线图p2=plt.figure(figsize=(12,12))p1=p2.add_subplot(2,1,1)#开始绘制第二幅plt.plot(values[0:20,0],values[0:20,1])#,linestyle = '-',color='r',marker='8'plt.ylabel('总人口(万人)')plt.xticks(range(0,20,1),values[range(0,20,1),0],rotation=45)#rotation设置倾斜度plt.legend('年末')plt.title('1996~2015年末总与各类人口折线图')p2=p2.add_subplot(2,1,2)plt.plot(values[0:20,0],values[0:20,2])#,'y-'plt.plot(values[0:20,0],values[0:20,3])#,'g-.'plt.plot(values[0:20,0],values[0:20,4])#,'b-'plt.plot(values[0:20,0],values[0:20,5])#,'p-'plt.xlabel('时间')plt.ylabel('总人口(万人)')plt.xticks(values[0:20,0])plt.legend(['男性','女性','城镇','乡村'])#显⽰图⽚plt.show()

 

(5)分析未来人口变化趋势2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

 

 2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

 

 

二、读取并查看P2P网络贷款数据主表的基本信息(110分,共10分)

考查知识点:掌握常见的数据读取方式;掌握DataFrame常用属性与方法;掌握基础时间数据处理方法;掌握分组聚合的原理与方法;掌握透视表与交叉表的制作。

需求说明:

P2P贷款主表数据主要存放了网贷用户的基本信息。探索数据的基本信息,能够洞察数据的整体分布、数据的类属关系、从而发现数据间的关联。

要求:

(1)使用ndim、shape、memory_usage属性分别查看维度、大小、占用内存信息。

#导入模块import osimport pandas as pdmaster = pd.read_csv('C:/Users/Administrator/Desktop/Training_Master.csv',encoding='gbk')#读取csv文件print('P2P网络贷款主表数据的维度为:',master.ndim)print('P2P网络贷款主表数据的形状大小为:',master.shape)print('P2P网络贷款主表数据的占用内存为:',master.memory_usage)#代码16-2print('P2P网络贷款主表数据的描述性统计为:\n',master.describe())

2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

三、提取用户信息更新表和登录信息表的时间信息(110分,共10分)

考查知识点:掌握常见的数据读取方式;掌握DataFrame常用属性与方法;掌握基础时间数据处理方法;掌握分组聚合的原理与方法;掌握透视表与交叉表的制作。

需求说明:

用户信息更新表和登录信息表汇总均存在大量的时间数据,提取时间数据内存在的信息,一方面可以加深对数据的理解,另一方面能够探索这部分信息和目标的关联程度。同时用户登录时间、借款成交时间、用户信息更新时间这些时间的时间差信息冶能反映出P2P网络贷款不同用户的行为信息。

要求:

(1)使用to_datetime函数转换用户信息更新表和登录信息表的时间字符串。

#导入模块

import pandas as pd

#读取文件

LogInfo = pd.read_csv('C:/Users/Administrator/Desktop/Training_LogInfo.csv',encoding='gbk')

Userupdate = pd.read_csv('C:/Users/Administrator/Desktop/Training_Userupdate.csv',encoding='gbk')

# 转换时间字符串

LogInfo['Listinginfo1']=pd.to_datetime(LogInfo['Listinginfo1'])

LogInfo['LogInfo3']=pd.to_datetime(LogInfo['LogInfo3'])

print('转换登录信息表的时间字符串前5行:\n',LogInfo.head())

Userupdate['ListingInfo1']=pd.to_datetime(Userupdate['ListingInfo1'])

Userupdate['UserupdateInfo2']=pd.to_datetime(Userupdate['UserupdateInfo2'])

print('转换用户信息更新表的时间字符串前5行:\n',Userupdate.head())

2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

 四、使用分组聚合方法进一步分析用户信息更新表和登录信息表(130分,共30分)

#导入模块import pandas as pdimport numpy as npLogInfo  = pd.read_csv('C:/Users/Administrator/Desktop/Training_LogInfo.csv',encoding='gbk')Userupdate= pd.read_csv('C:/Users/Administrator/Desktop/Training_Userupdate.csv',encoding='gbk')# 使用groupby方法对用户信息更新表和登录信息表进行分组LogGroup = LogInfo[['Idx','LogInfo3']].groupby(by = 'Idx')UserGroup = Userupdate[['Idx','UserupdateInfo2']].groupby(by = 'Idx')# 使用agg方法求取分组后的最早,最晚,更新登录时间print('分组后的最早登录时间为:\n',LogGroup.agg(np.min))print('分组后的最晚登录时间为:\n',LogGroup.agg(np.max))print('分组后的最早更新时间为:\n',UserGroup.agg(np.min))print('分组后的最晚更新时间为:\n',UserGroup.agg(np.max))# 使用size方法求取分组后的数据的信息更新次数与登录次数print('分组后的数据的信息更新次数为:\n',LogGroup.size())print('分组后的数据的登录次数为:\n',UserGroup.size())

2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用 _ JavaClub全栈架构师技术笔记

 

 

作者:LiYong~
来源链接:https://www.cnblogs.com/LiYong1/p/16222394.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/database/118453.html

标签:group by
分享给朋友:

“2003031119—李勇—Python数据分析五一假期作业—MySQL的安装以及使用” 的相关文章

全面解析Redis 2022年05月13日 10:22:02
必须拿下的Mybatis动态SQL 2022年05月17日 21:28:59
触发器的定义及优点 2022年05月21日 11:37:15
数据库之事务及事务的 ACID 性质 2022年05月21日 11:37:16
mysql查询最新的一条记录 2022年06月06日 16:04:12
mysql查询给某个字段赋值 2022年06月10日 21:43:53
mysql查询数据库表的数据行数 2022年06月12日 12:49:23