100天精通Python(数据分析篇)——第62天:pandas常用统计方法与案例

news2024/12/28 20:00:17

在这里插入图片描述

文章目录

  • 每篇前言
  • 一、常用统计方法与案例
    • 1. 求和(sum)
    • 2. 求平均值(mean)
    • 3. 求最小值(min)
    • 4. 求最大值(max)
    • 5. 求中位数(median)
    • 6. 求众数(mode)
    • 7. 求方差(var)
    • 8. 求标准差(std)
    • 9. 求分布情况(describe)
    • 10. 求相关系数(corr)

每篇前言

  • 🏆🏆作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6

  • 🔥🔥本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》
  • 📝​📝​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
  • 🎉🎉订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进千人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
  • 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

在这里插入图片描述
在这里插入图片描述

一、常用统计方法与案例

Pandas 的本质是统计学原理在计算机领域的一种应用实现,通过编程的方式达到分析、描述数据的目的。而统计函数则是统计学中用于计算和分析数据的一种工具。在数据分析的过程中,使用统计函数有助于我们理解和分析数据。本节将学习比如求和、求平均值、求最大值、最小值、中位数、众数、方差、标准差等。除此以外,还可以获取数值的分布情况、相关系数等。

常用的统计描述方法:

方法说明
count非NA值的数量
min、max计算最小值、最大值
argmin、argmax计算能够获取到最小值和最大值的索引位置(整数)
idxmin、idxmax计算能够获取到最小值和最大值的索引值
quantile计算样本的分位数(0到1)
sum值的总和
mean值的平均数
median值的算术中位数(50%分位数)
mode值的众数
var样本数值的方差
std样本值的标准差
skew样本值的偏度(三阶矩)
kurt样本值的峰度(四阶矩)
cumsum样本值的累计和
cummin、cummax样本值的累计最大值和累计最小值
cumprod样本值的累计积
diff计算一阶差分(对时间序列很有用)
pct_ change计算百分数变化
describe计算数据表中所有数值的分布情况,包括个数、均值、极值、方差、四分位
corr计算相关系数

1. 求和(sum)

pandas模块的sum()函数可以对每一列数据进行求和,如果值是字符串类型,则是拼接起来

DataFrame.sum(self, axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs,)

参数说明

  • axis:axis=0 按列统计,axis=1按行统计,默认值为0
  • skipna:布尔型,表示计算结果是否排除NaN/Null值,默认值为None
  • level:索引层级,默认为None
  • numeric_only:布尔型,仅数字,默认值为None
  • min_count:int类型,执行操作所需的数目,默认为0
import numpy as np
import pandas as pd

df_obj = pd.DataFrame(data=[{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}])
print(df_obj)
print("按列统计:")
print(df_obj.sum())
print("按行统计:")
print(df_obj.sum(axis=1))

运行结果:
在这里插入图片描述

2. 求平均值(mean)

mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
import numpy as np
import pandas as pd

df_obj = pd.DataFrame(data=[{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}])
print(df_obj)
print("按列统计:")
print(df_obj.mean())
print("按行统计:")
print(df_obj.mean(axis=1))

运行结果:
在这里插入图片描述

3. 求最小值(min)

min(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
import numpy as np
import pandas as pd

df_obj = pd.DataFrame(data=[{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}])
print(df_obj)
print("按列统计:")
print(df_obj.min())
print("按行统计:")
print(df_obj.min(axis=1))

运行结果:
在这里插入图片描述

4. 求最大值(max)

max(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
import numpy as np
import pandas as pd

df_obj = pd.DataFrame(data=[{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}])
print(df_obj)
print("按列统计:")
print(df_obj.max())
print("按行统计:")
print(df_obj.max(axis=1))

运行结果:
在这里插入图片描述

5. 求中位数(median)

median(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
import numpy as np
import pandas as pd

df_obj = pd.DataFrame(data=[{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}])
print(df_obj)
print("按列统计:")
print(df_obj.median())
print("按行统计:")
print(df_obj.median(axis=1))

运行结果:
在这里插入图片描述

6. 求众数(mode)

mode(self, axis: Axis = 0, numeric_only: bool = False, dropna: bool = True)

参数说明

  • axis:axis=0 按列统计,axis=1按行统计,默认值为0
  • numeric_only:布尔型,仅数字,默认值为None
  • drop_na:是否删除缺失值,布尔型,默认为True
import numpy as np
import pandas as pd

df_obj = pd.DataFrame([[1, 1, 1], [2, 2, 3], [3, 4, 5]])
print(df_obj)
print("按列统计:")
print(df_obj.mode())
print("按行统计:")
print(df_obj.mode(axis=1))

运行结果:
在这里插入图片描述

7. 求方差(var)

方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。方差越小越稳定。

var(self, axis=None, skipna=None, level=None, ddof=1, numeric_only=None,**kwargs)

参数说明

  • axis:axis=0 按列统计,axis=1按行统计,默认值为0
  • skipna:布尔型,表示计算结果是否排除NaN/Null值,默认值为None
  • level:索引层级,默认为None
  • numeric_only:布尔型,仅数字,默认值为None
  • ddof:int类,计算中使用的除数是N-ddof,其中N表示元素的数量。默认值为1.自由度
import numpy as np
import pandas as pd

data = [[99, 100, 60, 78, 50], [80, 89, 90, 88, 87]]
df_obj = pd.DataFrame(data=data, columns=['语文', '数学', '英语', '历史', '政治'], index=['小明', '小红'])
print(df_obj)
print("按列统计:")
print(df_obj.var())
print("按行统计:")
print(df_obj.var(axis=1))

运行结果:可以看出小红的成绩更加稳定
在这里插入图片描述

8. 求标准差(std)

标准差(Standard Deviation) ,数学术语,是离均差平方的算术平均数(即:方差)的算术平方根,用σ表示。标准差也被称为标准偏差,或者实验标准差,在概率统计中最常使用作为统计分布程度上的测量依据。
标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。

参数与var一致:

std(self, axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)
import numpy as np
import pandas as pd

data = [[99, 100, 60, 78, 50], [80, 89, 90, 88, 87]]
df_obj = pd.DataFrame(data=data, columns=['语文', '数学', '英语', '历史', '政治'], index=['小明', '小红'])
print(df_obj)
print("按列统计:")
print(df_obj.std())
print("按行统计:")
print(df_obj.std(axis=1))

运行结果:
在这里插入图片描述

9. 求分布情况(describe)

计算数据表中所有数值的分布情况,包括个数、均值、极值、方差、四分位

describe(self: FrameOrSeries,percentiles=None,include=None,exclude=None,datetime_is_numeric=False,)

参数说明

  • percentiles:数字列表,可选。要包含在输出中的百分比。所有值都应介于0和1之间。默认值为[.25、.5、.75],返回第25、50和75个百分位。

  • include:“all”,类似于dtypes或None(默认)的列表,可选。要包含在结果中的数据类型的白色列表。对于系列忽略。以下是选项:

    • “all”:输入的所有列都将包含在输出中。
    • 类似数据类型的列表:将结果限制为所提供的数据类型。要将结果限制为数字类型,请提交numpy.number。要将其限制为对象列,请提交numpy。对象数据类型。字符串也可以以select_dypes的样式使用(例如df.description(include=[‘O’]))。要选择熊猫分类列,请使用“类别”
    • None (默认):结果将包括所有数字列。
  • exclude:列表,如数据类型或无(默认),可选,要从结果中省略的数据类型的黑色列表。对于系列忽略。以下是选项:

    • 数据类型列表:从结果中排除提供的数据类型。要排除数字类型,请提交numpy.number。要排除对象列,请提交数据类型numpy.object。字符串也可以以select_dypes的样式使用(例如df.description(exclude=[‘O’]))。要排除熊猫分类列,请使用“category”

    • None(默认):结果将不排除任何内容。

  • datetime_is_numeric:bool,默认为False。是否将日期时间数据类型视为数字。这会影响为列计算的统计信息。对于DataFrame输入,这还控制默认情况下是否包含日期时间列。

import numpy as np
import pandas as pd

data = [[99, 100, 60, 78, 50]]
df_obj = pd.DataFrame(data=data, columns=['语文', '数学', '英语', '历史', '政治'], index=['小明'])
print(df_obj)
print(df_obj.describe())

运行结果:
在这里插入图片描述

10. 求相关系数(corr)

相关系数通常是用来衡量两个或多个元素之间的相关程度

corr(self,method: str | Callable[[np.ndarray, np.ndarray], float] = "pearson",min_periods: int = 1,)

参数说明

  • method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}
    • pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。
    • kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据
    • spearman:非线性的,非正太分析的数据的相关系数
  • min_periods:样本最少的数据量
import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'age': [10, 15, 20], 'height': [110, 150, 180]},index= ['小红', '小明', '小白'])
print(df_obj)
print("所有的相关系数:")
print(df_obj.corr())
print("身高的相关系数:")
print(df_obj.corr()['height'])

运行结果:
在这里插入图片描述

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

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

相关文章

jQuery网页开发案例:jQuery 其他方法--jQuery 拷贝对象,多库共存,jQuery 插件

jQuery 对象拷贝 如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend() 方法 语法: $.extend([deep], target, object1, [objectN]) 1. deep: 如果设为true 为深拷贝, 默认为false 浅拷贝 …

做减法才是真本事,别以为你很能学,做加法一点都不难

文章目录 顶级的高手才敢做减法 前言 一、做减法才是真本事 二、大数据梦想联盟活动开启 顶级的高手才敢做减法 前言 大多数人不懂,不会,不做,才是你的机会,你得行动,不能畏首畏尾 大数据等于趋势,一…

Vue中computed和watch区别

前言 vue中的computed和watch我们经常会用到,那么在什么场景下使用computed和watch,两者又有什么区别呢,傻傻分不清楚。记录一下,温故而知新! computed computed是计算属性,基于data中声明过或者父组件传递…

makkefile文件自动化编译以及基础文件命令(补)

目录makefile文件:实现自动化编译基础文件命令find(查找)grep(过滤)| (管道)关机重启文件压缩解压分步压缩解压一步压缩解压makefile文件:实现自动化编译 文件名称必须是:makefile …

【day15】每日强训编程题——查找输入整数二进制中1的个数手套

查找输入整数二进制中1的个数_牛客题霸_牛客网 这道题非常简单,就一个思路: 按位与& 任何一个数按位与上1,如果这个数二进制的最后一位是1,那么按位与的结果就是1,否则就是0 代码思路:n按位与1后往右…

【splishsplash】PBD探究

上次我们探究了PBD是如何引入plishsplash的,以及其控制流。 https://blog.csdn.net/weixin_43940314/article/details/127569870 这次我们来讲如何在自己新建的类中控制PBD刚体。 上回说到 Simulator\PositionBasedDynamicsWrapper\PBDWrapper.cpp 中的 void PBD…

AXI协议详解(6)-原子访问

原子访问 本章介绍了 AXI 协议如何实现排他访问和锁定访问机制。 它包含以下部分: 原子访问排他访问锁定访问 6.1 原子访问 为了实现原子访问权限,ARLOCK[1:0] 或 AWLOCK[1:0] 信号提供排他访问和锁定访问。 表 6-1 显示了 ARLOCK[1:0] 和 AWLOCK[1:…

3.NLP基础:文本可视化简述

1.文本可视化的流程 文本可视化依赖于自然语言处理,因此词袋模型、命名实体识别、关键词抽取、主题分析、情感分析等是较常用的文本分析技术。文本分析的过程主要包括特征提取,通过分词、抽取、归一化等操作提取出文本词汇级的内容,利用特征…

Qt 集成 FFmpeg 实现颜色格式转换

目录 1. Qt 集成 FFmpeg 1.1 下载 FFmpeg 1.2 Qt 集成 FFmpeg 1.2.1 修改 .pro 文件 1.2.2 放入 dll 文件 1.2.3 代码中使用 FFmpeg 2. 图像格式转换 3. 预览 4. 项目地址 项目需要,写个小工具来实现图像颜色格式的转换,主要的 Feature 如下&am…

百度最强中文AI作画大模型

前言 最近文生图领域的发展可谓是分生水起,这主要是得益于最近大火的扩散模型,之前笔者也写过一篇关于文本生产3D模型的文章,大家感兴趣的可以穿梭: https://zhuanlan.zhihu.com/p/570332906 今天要给大家介绍的这一篇paper是百度…

AXI协议详解(10)-非对齐传输

非对齐传输 本章介绍 AXI 协议如何处理未对齐的传输。 它包含以下部分: • 未对齐的传输 • 示例 10.1 关于未对齐传输 AXI 协议使用基于突发的寻址,这意味着每个事务由多个数据传输组成。 通常,每个数据传输都与传输大小对齐。 例如&…

Linux入门

Liunx 一计算机发展历史第一台计算机的诞生时代背景线计算机的发展线国家线时间线收束Liunx诞生操作系统简述购买云服务器以及登录增加用户总结学习的同时别忘了每天运动! 身体才是革命的本钱 计算机发展历史 第一台计算机的诞生 第一台计算机在1946年2月14日在美国…

webpack学习踩坑笔记(持续更新中...)

目录 学习内容: 1.5使用plugin 1.6 使用DevServer 学习内容: 《深入浅出webpack》 深入浅出Webpack Dive Into GitBook 因为很多内容书上已经写了,这里主要是记录一下个人看书过程中遇到的坑 1.5使用plugin 这一部分介绍了一个可以把…

vue3事件处理

获取到用户点击或者勾选的值 <li click“clici(item)” v-for"item in data" :key"id"> {{item}}</li> <script> clici(item){ } </script> v-model 实现数据的双向绑定 v-model.lazy 只有当用户提交或enter键后才触…

【数据结构】动态顺序表(C语言实现)

文章目录0. 前言1. 线性表2. 顺序表2.1 概念及结构3. 动态顺序表的实现3.1 定义结构3.2 接口函数总览3.3 初始化3.4 检查增容3.5 尾插3.6 尾删3.7 头插3.8 头删3.9 查找3.10 指定下标位置插入3.11 指定下标位置删除3.12 修改3.13 打印3.14 销毁4. 完整代码SeqList.hSeqList.cte…

HTML常见标签总结

目录 1.标题标签 2.段落标签 3.字体修饰标签 4.图片标签 5.超链接标签 6.表格标签 7.列表标签 8.表单标签 9.下拉菜单 10 多行文本框 1.标题标签 一级标题是<h1></h1>中间填上标题的内容,一共可以设置六级标题,数字越小,标题就越大越粗 我们测试一段代码 …

深度残差收缩网络(Deep Residual Shrinkage Networks for Fault Diagnosis )

摘要-本文开发了新的深度学习方法&#xff0c;即深度残余收缩网络&#xff0c;提高来自高噪声振动信号的特征学习能力&#xff0c;并实现较高的故障诊断准确性。软阈值作为非线性转换层插入到深层体系结构中&#xff0c;以消除不重要的特征。此外&#xff0c;考虑到通常为阈值设…

大数据编程实验一:HDFS常用操作和Spark读取文件系统数据

大数据编程实验一&#xff1a;HDFS常用操作和Spark读取文件系统数据 文章目录大数据编程实验一&#xff1a;HDFS常用操作和Spark读取文件系统数据一、前言二、实验目的与要求三、实验内容四、实验步骤1、HDFS常用操作2、Spark读取文件系统的数据五、最后我想说一、前言 这是我…

Swift基础——字典

Swift基础——字典 嗯。。。前面我们已经学习了数组&#xff08;相关文章地址&#xff09;&#xff0c;我们知道了在Swift中&#xff0c;苹果提供了两种集合类型来存储集合的值即Array和Dictionary。 Dictionary字典 字典&#xff1a;一种存储多个相同类型值的容器&#xff…

谈谈Java对象的生命周期

经过前面的分析 &#xff0c;我们现在来看一下创建的对象到底是什么东西&#xff0c;并且完整的总结一下一个对象从创建到回收到底经过了哪些阶段。 1 对象的创建 对象创建的主要流程: 1.类加载检查 虚拟机遇到一条new指令时&#xff0c;首先将去检查这个指令的参数是否能在常…