Python Pandas 常用统计数据方法汇总(求和,计数,均值,中位数,分位数,最大/最小,方差,标准差等)

2023-11-14

准备数据:

import pandas as pd
# 假设有 5 个人,分别参加了 4 门课程,获得了对应的分数
# 同时这个 5 个人分别负责的项目个数 在 'Project_num' 列中显示
data = {'name' : pd.Series(['Alice', 'Bob', 'Cathy', 'Dany', 'Ella', 'Ford', 'Gary', 'Ham', 'Ico', 'Jack']),
        'Math_A' : pd.Series([1.1, 2.2, 3.3, 4.4, 5, 3.2, 2.4, 1.5, 4.3, 4.5]),
        'English_A' : pd.Series([3, 2.6, 2, 1.7, 3, 3.3, 4.4, 5, 3.2, 2.4]),
        'Math_B' : pd.Series([1.7, 2.5, 3.6, 2.4, 5, 2.2, 3.3, 4.4, 1.5, 4.3]),
        'English_B' : pd.Series([5, 2.6, 2.4, 1.3, 3, 3.6, 2.4, 5, 2.2, 3.1]),
        'Project_num' : pd.Series([2, 3, 0, 1, 7, 2, 1, 5, 3, 4]),
        'Sex' : pd.Series(['F', 'M', 'M', 'F', 'M', 'F', 'M', 'M', 'F', 'M'])
     }
df = pd.DataFrame(data)
print(df)

运行结果:

    name  Math_A  English_A  Math_B  English_B  Project_num Sex
0  Alice     1.1        3.0     1.7        5.0            2   F
1    Bob     2.2        2.6     2.5        2.6            3   M
2  Cathy     3.3        2.0     3.6        2.4            0   M
3   Dany     4.4        1.7     2.4        1.3            1   F
4   Ella     5.0        3.0     5.0        3.0            7   M
5   Ford     3.2        3.3     2.2        3.6            2   F
6   Gary     2.4        4.4     3.3        2.4            1   M
7    Ham     1.5        5.0     4.4        5.0            5   M
8    Ico     4.3        3.2     1.5        2.2            3   F
9   Jack     4.5        2.4     4.3        3.1            4   M

一、数据的总体描述

1.1 统计行数 len(df)

print(len(df))
# 不包括表头(列标签)

运行结果:

10

1.2 统计有多少种不同的值 df[‘lable’].nunique()

print(df['Sex'].nunique())
# 这些人中有多少种性别呢

运行结果:

2

1.3 对 列 中每种不同的值 进行计数 df[‘lable’].value_counts()

print(df['Sex'].value_counts())
# 统计每种性别有多少人数,这里的 int64 指的是统计数字

运行结果:

M    6
F    4
Name: Sex, dtype: int64

1.4 整体统计描述 df.describe()

1.4.1 仅对数值型

print(df.describe())
# 对整张表格进行统计描述(这里仅对数值形的列进行统计)

运行结果:

          Math_A  English_A     Math_B  English_B  Project_num
count  10.000000  10.000000  10.000000  10.000000    10.000000
mean    3.190000   3.060000   3.090000   3.060000     2.800000
std     1.355196   1.014561   1.211473   1.189958     2.097618
min     1.100000   1.700000   1.500000   1.300000     0.000000
25%     2.250000   2.450000   2.250000   2.400000     1.250000
50%     3.250000   3.000000   2.900000   2.800000     2.500000
75%     4.375000   3.275000   4.125000   3.475000     3.750000
max     5.000000   5.000000   5.000000   5.000000     7.000000

1.4.2 对所有类型 df.describe(include=‘all’)

print(df.describe(include='all'))
# 对整张表格进行统计描述(所有类型进行统计)

运行结果:

        name     Math_A  English_A     Math_B  English_B  Project_num  Sex
count     10  10.000000  10.000000  10.000000  10.000000    10.000000   10
unique    10        NaN        NaN        NaN        NaN          NaN    2
top     Jack        NaN        NaN        NaN        NaN          NaN    M
freq       1        NaN        NaN        NaN        NaN          NaN    6
mean     NaN   3.190000   3.060000   3.090000   3.060000     2.800000  NaN
std      NaN   1.355196   1.014561   1.211473   1.189958     2.097618  NaN
min      NaN   1.100000   1.700000   1.500000   1.300000     0.000000  NaN
25%      NaN   2.250000   2.450000   2.250000   2.400000     1.250000  NaN
50%      NaN   3.250000   3.000000   2.900000   2.800000     2.500000  NaN
75%      NaN   4.375000   3.275000   4.125000   3.475000     3.750000  NaN
max      NaN   5.000000   5.000000   5.000000   5.000000     7.000000  NaN

1.4.3 对指定的列

print(df.Math_A.describe())
# 对指定的列进行统计描述

运行结果:

count    10.000000
mean      3.190000
std       1.355196
min       1.100000
25%       2.250000
50%       3.250000
75%       4.375000
max       5.000000
Name: Math_A, dtype: float64

二、指定统计方式

2.1 求和 sum()

print(df.Project_num.sum())

运行结果:

28

2.2 计数 df.count()

print(df.count())

运行结果:

name           10
Math_A         10
English_A      10
Math_B         10
English_B      10
Project_num    10
Sex            10
dtype: int64

2.3 中位数 df.median()

print(df.median())

运行结果:

Math_A         3.25
English_A      3.00
Math_B         2.90
English_B      2.80
Project_num    2.50
dtype: float64

2.4 分位数 df.quantile()

print(df.quantile([0.25,0.75]))

运行结果:

      Math_A  English_A  Math_B  English_B  Project_num
0.25   2.250      2.450   2.250      2.400         1.25
0.75   4.375      3.275   4.125      3.475         3.75

2.5 最大值 / 最小值 df.max() / df.min()

print(df.max())
print(df.min())
# 字符串在计算机表示中也是有大小区别的

运行结果:

name           Jack
Math_A            5
English_A         5
Math_B            5
English_B         5
Project_num       7
Sex               M
dtype: object

name           Alice
Math_A           1.1
English_A        1.7
Math_B           1.5
English_B        1.3
Project_num        0
Sex                F
dtype: object

2.6 均值 df.mean()

print(df.mean())
# 仅对数值类型进行求解

运行结果:

Math_A         3.19
English_A      3.06
Math_B         3.09
English_B      3.06
Project_num    2.80
dtype: float64

2.7 方差 / 标准差 df.var() / df.std()

print(df.var())
print(df.std())
# 仅对数值类型进行求解

运行结果:

Math_A         1.836556
English_A      1.029333
Math_B         1.467667
English_B      1.416000
Project_num    4.400000
dtype: float64

Math_A         1.355196
English_A      1.014561
Math_B         1.211473
English_B      1.189958
Project_num    2.097618
dtype: float64

三、批量操作(对每个元素应用同一个自定义函数)df.apply()

3.1 对整张表格

def double (x):
    return x*2

print(df.apply(double))
# 对于数值就是 乘以 2
# 但是对于字符串,那就是重复2遍的操作

运行结果:

         name  Math_A  English_A  Math_B  English_B  Project_num Sex
0  AliceAlice     2.2        6.0     3.4       10.0            4  FF
1      BobBob     4.4        5.2     5.0        5.2            6  MM
2  CathyCathy     6.6        4.0     7.2        4.8            0  MM
3    DanyDany     8.8        3.4     4.8        2.6            2  FF
4    EllaElla    10.0        6.0    10.0        6.0           14  MM
5    FordFord     6.4        6.6     4.4        7.2            4  FF
6    GaryGary     4.8        8.8     6.6        4.8            2  MM
7      HamHam     3.0       10.0     8.8       10.0           10  MM
8      IcoIco     8.6        6.4     3.0        4.4            6  FF
9    JackJack     9.0        4.8     8.6        6.2            8  MM

3.2 对指定的列

def double (x):
    return x*2

print(df.Math_B.apply(double))

运行结果:

0     3.4
1     5.0
2     7.2
3     4.8
4    10.0
5     4.4
6     6.6
7     8.8
8     3.0
9     8.6
Name: Math_B, dtype: float64
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Pandas 常用统计数据方法汇总(求和,计数,均值,中位数,分位数,最大/最小,方差,标准差等) 的相关文章

随机推荐

  • javascript中的with()方法

    with 方法 with方法用于多次使用对象属性时 可简化多次编写同一对象的工作 例 js代码 var aa document createElement div 创建一个div赋给aa with aa style width 400px
  • 【 uniapp 】打包Android的apk(原生APP-云打包),及发布测试

    前言 跨端 小程序 Android IOS 项目开发好了 我们如何去利用 uniapp 的云打包去打包 apk 文件 然后上传测试呢 今天我们一起来学习一下 一步一步如何实现 目录 一 打包 Android 生成apk 1 原生APP 云打
  • 三天的C语言学习 小结(含基础代码)

    从八月一号开始学习B站鹏哥C语言 课程充实详细适合新手入门 我用的是Devc 编译器 虽然不咋先进但也能用 目标是每天学一节课可以的话多学一点再将其充分消化 慢慢总结 打好基础 慢慢提升 刚开始自学的话能做到这些也差不多了 等到大学的时候在
  • HTTP协议中的短轮询、长轮询、长连接和短连接

    转自 https www cnblogs com Leo wl p 5397265 html 阅读目录 一 引言 二 以前的误解 三 一个疑问 四 长轮询和短轮询 五 长短轮询和长短连接的区别 六 结语 阅读目录 HTTP协议中的短轮询 长
  • golang多版本管理工具g

    一 Go的项目隔离 GVM是一个golang虚拟环境配置工具 其允许一台机器上安装多个golang版本 gvm是第三方开发的Go多版本管理工具 类似ruby里面的rvm工具 或者nodejs的版本管理工具nvm 它是以shell脚本开发的工
  • 为Nginx添加第三方模块

    cd opt 拖入压缩包 解压 mv到指定目录 方便后面操作 进入nginx安装包 cd opt nginx 1 15 9 root szh nginx 1 15 9 configure prefix usr local nginx add
  • ASCII码对照表(二进制、十进制、十六进制)

  • MySQL存储引擎及其索引实现

    存储引擎指表的类型及表在计算机上的存储方式 主要的存储引擎有InnoDB MyISAM Memory等 MyIASM 1 使用这个存储引擎 每个MyISAM在磁盘上存储三个文件 frm文件 存储表的定义数据 MYD文件 存放表具体记录的数据
  • 静态链表的概念与基本操作

    静态链表顾名思义就是用静态数组的方式来模拟一个链表的实现 这个在没有指针类型的高级机器语言会出现 但是用途感觉还是很少的 由于是借助于一个固定长度的数组来描述线性表的链式存储结构 灵活度比较低的 和链表的一样 adt中含有数据域 data和
  • Unity 基础 之 一个点(物体)绕另一个点(物体)旋转的简单封装

    Unity 基础 之 一个点 物体 绕另一个点 物体 旋转的简单封装 目录 Unity 基础 之 一个点 物体 绕另一个点 物体 旋转的简单封装 一 简单介绍 二 实现原理 三 注意事项 四 效果预览 五 实现步骤 六 关键代码 七 附加
  • ​LeetCode刷题实战426:将二叉搜索树转化为排序的双向链表

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 将二叉搜索树转化为排序的双向链
  • Python时间序列scikit-learn回归预测电力需求

    时间序列是一系列按时间顺序排列的数据 这些数据以相等或不等的间隔间隔开 预测过程包括预测时间序列的未来值 或者通过仅基于其过去行为 自回归 对序列进行建模 或者通过使用其他外部变量来进行建模 在处理时间序列时 很少需要只预测序列中的下一个元
  • Cloudflare设置优选IP教程-Cloudflare自选IP

    在第三方平台将您的域名记录指向您的服务器源IP Cloudflare 怕是一个耳熟能详的名字了 很多人都说Cloudflare是减速cdn 反向加速 Cloudflare的默认节点确实很慢 但是通过优选可以自定义很多Cloudflare的优
  • 蓝桥杯2022年第十三届JAVA省赛真题-数组切分

    数据范围很敏感 给的10000 很适合跑常数小的n 2算法 在加上最后的答案很大 肯定不能枚举每一种答案的具体状态 所以很容易想到用动态规划来解决 动态规划 f i 1 i中 已经划分好的所有合法方案的数量 include
  • 修改oem.img镜像文件

    1 将oem img复制到虚拟机中 挂载镜像 mount oem img mount user data 2 查看是否挂载成功 df h 3 进入挂载目录进行修改 cp f README test img mount user data 4
  • Android Service(二)Service的两种启动方式

    文章目录 一 startService 二 bindService 上一篇 Android Service 一 概述 作用 生命周期 下一篇 Android Service 三 望支持加快更新 一 startService 效果图 需要配合
  • 简单题--奇数倍数

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 请你找到最小的整数 XX 同时满足 XX 是 20192019 的整倍数 XX 的每一位数字都是奇数 代码如下 public class Main publi
  • idea打包项目时报错 There are test failures

    出现这个错误时要点击跳过测试类的按钮 图中的这个圆圈 可以看到test已经被划掉了 再点击package打包 成功
  • SAP基本计量单位更改

    点击进入 SAP基本计量单位更改 前言部分 大家可以关注我的公众号 公众号里的排版更好 阅读更舒适 正文部分 在SAP中物料创建后 一旦发生业务 其基本计量单位便很难修改 由于单位无法满足业务要求 往往会要求新建一个物料替代旧物料 这时候除
  • Python Pandas 常用统计数据方法汇总(求和,计数,均值,中位数,分位数,最大/最小,方差,标准差等)

    Pandas 统计数据方法汇总 准备数据 一 数据的总体描述 1 1 统计行数 len df 1 2 统计有多少种不同的值 df lable nunique 1 3 对 列 中每种不同的值 进行计数 df lable value count