数据分析(一)(附带实例和源码)

news2024/11/24 2:25:46

一、主要目的:

主要利用Python包,如Numpy、Pandas和Scipy等常用分析工具并结合常用的统计量来进行数据的描述,把数据的特征和内在结构展现出来。熟悉在Python开发环境中支持数据分析的可用模块以及其中的方法,基于一定的样例数据,编写数据分析过程的示例代码。

二、主要内容:

1.基本统计分析

基本统计分析又叫描述性统计分析,一般统计某个变量的最小值、第一个四分位值、中值、第三个四分位值以及最大值。

数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观的选择。数据的中心位置可分为均值(Mean)、中位数(Median)和众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。对于定量数据来说,均值是总和除以总量N,中位数是数值大小位于中间(奇偶总量处理不同)的值,均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。

描述性统计分析函数为describe。该函数返回值有均值、标准差、最大值、最小值、分位数等。括号中可以带一些参数,如percentitles=[0.2,0.4,0.6,0.8]就是指定只计算0.2、0.4、0.6、0.8分位数,而不是默认的1/4、1/2、3/4 分位数。

常用的统计函数有:

size:计数(此函数不需要括号)

sum():求和

mean():平均值

var():方差

std():标准差

2.分组分析

分组分析是指根据分组字段将分析对象划分成不同的部分,以对比分析各组之间差异性的一种分析方法。

常用的统计指标有:计数、求和、平均值

3.分布分析

分布分析是指根据分析的目的,将数据(定量数据)进行等距或不等距的分组,研究各组分布规律的一种分析方法。

4.交叉分析

交叉分析通常用于分析两个或两个以上分组变量之间的关系,以交叉表形式进行变量间关系的对比分析。一般分为定量、定量分组交叉;定量、定性分组交叉;定性、定型分组交叉。常用命令格式如下:

pivot_table(values,index,columns,aggfunc,fill_value)

5.结构分析

结构分析是在分组分析以及交叉分析的基础上,计算各组成部分所占的比重,进而分析总体的内部特征的一种分析方法。

这里分组主要是指定性分组,定性分组一般看结构,它的重点在于计算各组成部分占总体的比重。

6.相关分析

判断两个变量是否具有线性相关关系最直观的方法是直接绘制散点图,看变量之间是否符合某个变化规律。当需要同时考察多个变量间的相关关系时,一一绘制他们间的简单散点图是比较麻烦的。此时可以利用散点矩阵图同时绘制各变量间的散点图,从而快速发现多个变量间的主要相关性,这在进行多元线性回归时显得尤为重要。

相关分析是研究现象之间是否存在某种依存关系,并对具体有依存关系的现象探讨其相关方向以及相关程度,是研究随机变量之间的相关关系的一种统计方法。

为了更加准确地描述变量之间的线性相关程度,通过计算相关系数来进行相关分析,在二元变量的相关分析过程中,比较常用的有Pearson相关系数、Spearman秩相关系数和判定系数。Pearson相关系数一般用于分析两个连续变量之间的关系,要求连续变量的取值服从正态分布。不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数(也称等级相关系数)来描述。

相关系数可以用来描述定量变量之间的关系。

三、实现过程:

四、源码附件:

import pandas as pd

import numpy as np

from pandas import Series, DataFrame

df=pd.DataFrame({'成绩':[98,95,68,57,88,79]})

#描述性统计分析函数为describe。该函数返回值有均值、标准差、最大值、最小值、分位数等

#括号中可以带一些参数,如percentitles=[0.2,0.4,0.6,0.8]就是指定只计算0.2、0.4、0.6、0.8分位数,

print(df.成绩.describe())

#计数(此函数不需要括号)

print(df.成绩.size)

print("最大值", df['成绩'].max()) #

print("最小值",df['成绩'].min()) #

print("求总和",df['成绩'].sum()) #

print("求均值",df['成绩'].mean()) #

print("求方差",df['成绩'].var()) #

print("标准差",df['成绩'].std()) #

print("中位数",df['成绩'].median())

print("众数",df['成绩'].mode())

import pandas as pd

import numpy as np

#分组分析是指根据分组字段将分析对象划分成不同的部分,常用的统计指标有:计数、求和、平均值

df1=pd.DataFrame({'班级':["一班","二班","一班","一班","二班"],'姓名':["小明","小红","张明","小芳","小龙"],'成绩':[85,85,75,65,95],'年龄':[18,25,32,47,50],'性别':['男','女','男','女','男']})

print(df1)

aggResult = df1.groupby(by=['班级']) ['成绩'].agg([('总分',np.sum),('人数',np.size),('平均成绩',np.mean)])

print(aggResult)

bins = [min(df1.年龄)-1,20,30,40,max(df1.年龄)+1]

labels = ['20以下', '20到30', '30到40','40以上'];

#3、分布分析

df1['年龄分层'] = pd.cut(df1.年龄,bins,labels = labels)

print(df1)

#4、交叉分析 pivot_table(values,index,columns,aggfunc,fill_value)

ptResult = df1.pivot_table(values = ['年龄'],index = ['年龄分层'],columns = ['性别'],aggfunc=[np.size])

print(ptResult)

print(ptResult.sum())

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

# 随机数生成器的种子

np.random.seed(19680801)

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

colors = np.random.rand(N)

area = (30 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5) # 设置颜色及透明度

plt.title("RUNOOB Scatter Test") # 设置标题

plt.show()

import numpy as np

import pandas as pd

data = pd.DataFrame({'A':np.random.randint(1, 100, 10),

                     'B':np.random.randint(1, 100, 10),

                     'C':np.random.randint(1, 100, 10)})

print(data)

print(data.corr())   # 计算pearson相关系数

print(data.corr('kendall'))      # Kendall Tau相关系数

print(data.corr('spearman'))     # spearman秩相关

五、心得

通过这次实验,我学习了Python中Pandas库的相关数据分析方法,包括描述性统计分析、计数、求最大值、最小值、总和、均值、方差、标准差、中位数和众数等基本操作。同时,我也了解了分组分析、分布分析、交叉分析等高级分析方法。

此外,我还学习了如何使用matplotlib库绘制散点图,以及如何计算Pearson相关系数、Kendall Tau相关系数和Spearman秩相关。这些都是数据分析中非常重要的技能,尤其是相关系数的计算,可以帮助我们理解变量之间的关系。

通过实验,我明白了理论知识和实际操作的结合是非常重要的,只有动手实践,才能更好地理解和掌握知识。同时,我也意识到数据分析是一个需要细心和耐心的过程,每一步都不能马虎。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1317458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】使用递归的方法获取层级关系数据demo

使用递归来完善各种业务数据的层级关系的获取 引言:在Java开发中,我们通常会遇到层层递进的关系型数据的获取问题,有时是树状解构,或金字塔结构,怎么描述都行,错综复杂的关系在程序中还是可以理清的。 这…

服务器RAID配置及功能介绍

服务器RAID配置及功能介绍 一、RAID磁盘阵列详解1.RAID磁盘阵列介绍2.RAID 03.RAID14.RAID35.RAID56.RAID67.RAID 10总结阵列卡介绍 一、RAID磁盘阵列详解 1.RAID磁盘阵列介绍 ①是Redundant Array of lndependent Disks的缩写中文简称为独立冗余磁盘阵列。 ②把多块独立的物…

nginx_rtmp_module 之 ngx_rtmp_mp4_module 的mp4源码分析

一:整体代码函数预览 static ngx_int_t ngx_rtmp_mp4_postconfiguration(ngx_conf_t *cf) {ngx_rtmp_play_main_conf_t *pmcf;ngx_rtmp_play_fmt_t **pfmt, *fmt;pmcf ngx_rtmp_conf_get_module_main_conf(cf, ngx_rtmp_play_module);pfmt ngx_ar…

Prometheus 监控笔记(1):你真的会玩监控吗?

认识Prometheus Prometheus 是一种开源的系统和服务监控工具,最初由 SoundCloud 开发,后来成为继 Kubernetes 之后云原生生态系统中的一部分。在 Kubernetes 容器管理系统中,通常会搭配 Prometheus 进行监控,同时也支持多种 Expo…

Node.js安装教程

虽然网上Node.js的安装教程有很多,但是基本上都是千篇一律。虽然跟着网上内容安装,却总会遇到乱七八糟的问题。为此,我写下这篇文章,除了描述node的安装教程,还会解释这样安装的过程起到一个什么作用。 文章大致上分为…

visual studio 2019 移除/卸载项目已经如何再加载项目

文章目录 移除解决方案下的某个项目添加已移除的项目移除项目加载已卸载的项目注意事项 移除解决方案下的某个项目 在项目名称上,点击鼠标右键,弹出右键工具栏,找到 移除 功能。 然后鼠标左键点击 移除。 弹出的模态框,选择确定…

《点云处理》平面拟合

前言 在众多点云处理算法中,其中关于平面拟合的算法十分广泛。本篇内容主要是希望总结归纳各类点云平面拟合算法,并且将代码进行梳理保存。 环境: VS2019 PCL1.11.1 1.RANSAC 使用ransac对平面进行拟合是非常常见的用法,PCL…

josef约瑟 时间继电器 DS-23/C AC220V 10S柜内板前接线

系列型号: DS-21时间继电器 ;DS-22时间继电器; DS-23时间继电器;DS-24时间继电器; DS-21C时间继电器;DS-22C时间继电器; DS-23C时间继电器; DS-25时间继电器;DS-26…

Delphi 编译关闭时 Stack overflow 错误

本人工程文件,编译EXE文件,程序关闭时出现 Stack overflow 错误。网搜索一些解决办法:比如,加大堆栈...,均不能问题。虽然,生成的EXE文件,执行时,无任何问题。 Stack overflow 错误&…

【面试】测试/测开(NIG2)

145. linux打印前row行日志 参考&#xff1a;linux日志打印 前10行日志 head -n 10 xx.log后10行日志 tail -n 10 xx.log tail -10f xx.log使用sed命令 sed -n 9,10p xx.log #打印第9、10行使用awk命令 awk NR10 xx.log #打印第10行 awk NR>7 && NR<10 xx.log …

基于JSP+Servlet+Mysql的建设工程监管信息

基于JSPServletMysql的建设工程监管信息 一、系统介绍二、功能展示1.企业信息列表2.录入项目信息3.项目信息列表 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目名称&#xff1a;基于JSPServlet的建设工程监管信息 项目架构&#xff1a;B/S架构 开发语言&#xff1a;…

IEEE、Sci-Hub

最近要写毕业论文&#xff0c;记录一下查询资料的网站。 IEEE&#xff08;Institute of Electrical and Electronics Engineers&#xff09;是世界上最大的专业技术协会之一&#xff0c;致力于推动电气和电子工程领域的创新和发展。IEEE成立于1884年&#xff0c;总部位于美国纽…

【公务员】资料分析——做题技巧

小分互换 1 2 50 % 1 3 33.3 % 1 4 25 % 1 5 20 % 1 6 16.7 % 1 7 14.3 % 1 8 12.5 % 1 9 11.1 % 1 10 10 % 1 11 9.1 % 1 12 8.3 % 1 13 7.7 % 1 14 7.1 % 1 15 6.7 % \frac 1250\% \quad \frac 1333.3\% \quad \frac 1425\% \quad \frac 1520\% \quad \frac 16…

基于CentOS7_安装Docker

基于CentOS7_安装Docker 配置网络&#xff0c;使其能ping通外网 安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2下载repo文件 wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo更换…

基于Springboot的体育馆管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的体育馆管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

【Spring】Spring中的事务

文章目录 1. Spring事务简介2. Spring事务的案例案例代码代码目录结构数据库pom.xmlResource/jdbc.propertiesconfig/SpringConfig.javaconfig/JdbcConfig.javaconfig/MyBatisConfig.javadao/AccountDao.javaservice/AccountService.javaservice/impl/AccountServiceImpl.java测…

电子元器件介绍——电感(三)

电子元器件 文章目录 电子元器件前言一、电感的基础知识二、电感的分类与作用三、电感的作用 总结 前言 这一节学习一下电感 一、电感的基础知识 电感是导线内通过交流电流时&#xff0c;在导线的内部及其周围产生交变磁通&#xff0c;导线的磁通量与生产此磁通的电流之比。…

[python][plotly]利用plotly绘制散点图

import plotly.express as px import pandas as pd# 创建示例数据 data pd.DataFrame({x: [1, 2, 3, 4, 5],y: [5, 4, 3, 2, 1] })# 使用 plotly.express 绘制散点图 fig px.scatter(data, xx, yy, titleScatter plot) fig.show() 结果&#xff1a;

LabVIEW开发地铁运行安全监控系统

LabVIEW开发地铁运行安全监控系统 最近昌平线发生的故障事件引起了广泛关注&#xff0c;暴露了现有地铁运行监控系统在应对突发情况方面的不足。为了提高地铁系统的运行安全性&#xff0c;并防止类似事件再次发生&#xff0c;提出了一套全面的地铁运行安全监控系统方案。此方案…

写好ChatGPT提示词原则之:清晰且具体(clear specific)

ChatGPT 的优势在于它允许用户跨越机器学习和深度学习的复杂门槛&#xff0c;直接利用已经训练好的模型。然而&#xff0c;即便是这些先进的大型语言模型也面临着上下文理解和模型固有局限性的挑战。为了最大化这些大型语言模型&#xff08;LLM&#xff09;的潜力&#xff0c;关…