【Pandas入门教程】如何计算汇总统计数据

news2024/12/24 10:01:33

如何计算汇总统计数据

来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html

笔记托管:https://gitee.com/DingJiaxiong/machine-learning-study

在这里插入图片描述

文章目录

    • 如何计算汇总统计数据
        • 导包
        • 数据准备
        • 【1】如何计算汇总统计数据
          • ① 聚合统计信息
          • ② 按类别分组的聚合统计信息
          • ③ 按类别计算记录数
        • 【小结】

导包

import pandas as pd

数据准备

使用存储为 CSV 的泰坦尼克号数据集。数据由以下数据列组成:

  • 【PassengerId】乘客 ID:每位乘客的 ID。
  • 【Survived】幸存:表明乘客是否幸存。0 表示是,1 表示否。
  • 【Pclass】P类:3个机票类别之一:1类,2类和3类.
  • 【Name】姓名:乘客姓名。
  • 【Sex】性别:乘客的性别。
  • 【Age】年龄:乘客的年龄(以岁为单位)。
  • SibSp:船上的兄弟姐妹或配偶的数量。
  • Parch:船上的父母或孩子人数。
  • 【Ticket】票:乘客的票号。
  • 【Fare】票价:表示票价。
  • 【Cabin】客舱:乘客的客舱号码。
  • 【Embarked】登船:登船港。
titanic = pd.read_csv("titanic.csv")
titanic.head()
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS

【1】如何计算汇总统计数据

① 聚合统计信息

在这里插入图片描述

泰坦尼克号乘客的平均年龄是多少?

titanic['Age'].mean()
29.69911764705882

可以使用不同的统计信息,并且可以应用于具有数值数据的列。默认情况下,操作通常会排除缺失的数据并跨行操作。

在这里插入图片描述

泰坦尼克号乘客的年龄和票价中位数是多少?

titanic[['Age', 'Fare']].median()
Age     28.0000
Fare    14.4542
dtype: float64

应用于DataFrame 的多个列的统计信息(选择两列将返回一个数据DataFrame)是针对每个数字列计算的。

可以同时计算多个列的聚合统计信息。

titanic[['Age', 'Fare']].describe()
AgeFare
count714.000000891.000000
mean29.69911832.204208
std14.52649749.693429
min0.4200000.000000
25%20.1250007.910400
50%28.00000014.454200
75%38.00000031.000000
max80.000000512.329200

可以使用 DataFrame.agg() 方法定义给定列的聚合统计信息的特定组合,而不是预定义的统计信息:

titanic.agg(
    {
        "Age": ["min", "max", "median", "skew"],
        "Fare": ["min", "max", "median", "mean"]
    }
)
AgeFare
min0.4200000.000000
max80.000000512.329200
median28.00000014.454200
skew0.389108NaN
meanNaN32.204208
② 按类别分组的聚合统计信息

在这里插入图片描述

男性与女性泰坦尼克号乘客的平均年龄是多少?

titanic[['Sex', 'Age']].groupby("Sex").mean()
Age
Sex
female27.915709
male30.726645

由于我们感兴趣的是每个性别的平均年龄,因此首先对这两列进行子选择:titanic[[“Sex”, “Age”]]接下来,groupby() 方法应用于 Sex 列以按类别创建一个组。计算并返回每个性别的平均年龄。

为列中的每个类别(例如Sex列中的男性/女性)计算给定的统计数据(例如mean是一种常见的模式。groupby方法用于支持此类操作。这符合更一般的split-apply-combine模式:

  • 将数据拆分为多个组
  • 将函数单独应用于每个组
  • 将结果合并到数据结构中

应用和组合步骤通常在pandas中一起完成。

在前面的示例中,我们首先显式选择了 2 列。如果不是,则通过传递 numeric_only=True 将 mean 方法应用于包含数字列的每个列:

titanic.groupby("Sex").mean(numeric_only=True)
PassengerIdSurvivedPclassAgeSibSpParchFare
Sex
female431.0286620.7420382.15923627.9157090.6942680.64968244.479818
male454.1473140.1889082.38994830.7266450.4298090.23570225.523893

获取 Pclass的平均值没有多大意义。如果我们只对每个性别的平均年龄感兴趣,则分组数据也支持选择列(像往常一样使用矩形括号 []):

titanic.groupby("Sex")["Age"].mean()
Sex
female    27.915709
male      30.726645
Name: Age, dtype: float64

在这里插入图片描述

【注意】Pclass 列包含数值数据,但实际上表示 3 个类别(或因素),分别带有标签“1”、“2”和“3”。计算这些统计数据没有多大意义。因此,pandas 提供了一个Categorical数据类型来处理这种类型的数据。

每种性别和舱位等级组合的平均票价是多少?

titanic.groupby(["Sex", "Pclass"])["Fare"].mean()
Sex     Pclass
female  1         106.125798
        2          21.970121
        3          16.118810
male    1          67.226127
        2          19.741782
        3          12.661633
Name: Fare, dtype: float64

分组可以同时由多个列完成。将列名作为列表提供给 groupby() 方法。

③ 按类别计算记录数

在这里插入图片描述

每个舱位等级的乘客人数是多少?

titanic["Pclass"].value_counts()
3    491
1    216
2    184
Name: Pclass, dtype: int64

value_counts() 方法计算列中每个类别的记录数。

该函数是一个快捷方式,因为它实际上是一个分组操作,与每个组中的记录数计数相结合:

titanic.groupby("Pclass")["Pclass"].count()
Pclass
1    216
2    184
3    491
Name: Pclass, dtype: int64

size和count都可以与groupby。size包括 NaN 值,并且只提供行数(表的大小),而 count 不包括缺失值。在 value_counts 方法中,使用 dropna 参数包含或排除 NaN 值。

【小结】

可以对整列或整行计算聚合统计信息。

groupby 提供了拆分-应用-组合模式的强大功能。

value_counts 是计算变量每个类别中的条目数的便捷快捷方式。

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

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

相关文章

【学习Seata1.6源码#03】TC 集群具有高可用架构的秘密

一、背景 TC 集群具有高可用架构,应用到集群是这样一个间接的关系:应用 -》事务分组 -》TC 集群,应用启动后所指定的事务分组不能变,可通过配置中心变更事务分组所属的 TC 集群,Seata 客户端监听到这个变更后&#xf…

TIA博途中进行积分运算的具体方法

TIA博途中进行积分运算的具体方法 如下图所示,积分是对给定函数曲线的面积进行数学计算。但是实际曲线往往没有明确的数学关系,而是随时间变化的模拟量。积分计算就是把所有由两个过程值与时间所围成的梯形区域面积相加,梯形面积等于两个过程值的平均值乘以时间间隔。 如下…

MAC 下编译调试 MySQL8.0 源码

MAC 下编译调试 MySQL8.0 源码 最近遇到几个关于 MySQL 死锁的问题,但是查看网上的资料发现并不能解决我遇到的问题,于是决定从源码寻找答案,所以在这里记录一下自己编译 MySQL 源码的过程。 环境配置如下: macOS Ventura 版本 1…

达势股份IPO前紧急叫停:年内已有多家公司急刹车,王怡为董事长

又一家准上市公司在IPO前紧急叫停。 近日,达美乐比萨(Domino’s Pizza,NYSE:DPZ)在中国的运营商——达势股份(DPC Dash Ltd,HK:01405)发布《延迟全球发售及退回香港公开发售的申请股款》&#…

箭头函数的使用

一、什么是箭头函数 从 ES6 开始支持箭头函数,它是一种新的函数表达方式,可以在某些情况下使函数的使用更加的简洁。 二、箭头函数的使用 1、单个参数的使用 例: var f v > v;// 等同于var f function (v) {return v;};2、如果箭头函…

upload-labs(writeup)

pass1 前端验证,使用bp抓包改后缀 pass2 验证MIME类型,使用bp抓包,更改Content-Type 即可 pass3 黑名单限制,可以上传 .php3 .php5 .pthml 等等后缀, 但是要在phpstydy配置文件中更改,(我使…

网络编程 基于tcp/ip协议的C/S模型

1.socket编程的一些概念 socket作用:运行在计算机中的两个程序通过socket建立起一个通道,数据在通道中传输。socket提供了流(stream),是基于TCP协议,是一个有序、可靠、双向字节流的通道,传输数据不会丢失、不会重复、…

C#中的String和StringBuilder

一:前言 String和StringBuilder都是引用类型 StringBuilder是可变的字符串,它不会创建当前字符串的新修改实例而是在现有字符串对象中进行修改 String是不可变字符串,一旦被初始化后就不能改变其内容,String值改变的过程其实是创…

如何自定义注解

在 Spring Boot 应用中&#xff0c;使用自定义注解时需要用到 AOP&#xff0c;因此引入 AOP 相关依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependenc…

Python办公自动化|批量生成请假条

大家好&#xff0c;我是毕加锁 本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word&#xff0c;主要将涉及以下三个知识点 “ openpyxl 读取 Excel 文件 python-docx 写入 Word 文件 python-docx 各类样式的设计和调整 ”需求描述 你是公司的底层小虾米&…

2022年AIGC简单展望

2022 对于社会是不平凡的一年&#xff0c;而对于科技也同样是不平凡的一年。人们在社会中遭受着失意&#xff0c;却在科技中寻找希冀。对于一个命运共同体&#xff0c;它想着如何破除衰退&#xff0c;而同样对于一个活生生的个体或者家庭&#xff0c;他们也在摸索改变命运的机遇…

SpringBoot拦截器HandlerInterceptor

一、HandlerInterceptor是什么&#xff1f; Spring Boot 拦截器主要应用于登陆校验、权限验证、乱码解决&#xff0c;同样提供了拦截器功能。 二、使用方式 在项目中实现HandlerInterceptor接口开箱即用 三、HandlerInterceptor 中实现的方法 方法介绍preHandle(HttpServletRe…

Linux操作系统之进程间的通讯—管道

文章目录进程间通讯&#xff08;IPC机制&#xff09;有哪几种方式&#xff1f;1、管道有名管道无名管道2、信号量进程间通讯&#xff08;IPC机制&#xff09;有哪几种方式&#xff1f; 管道、信号量、共享内存、消息队列、套接字 1、管道 什么是管道&#xff1f; 有名管道…

JavaScript 入门基础 - 变量 / 数据类型(二)

JavaScript 入门基础 - 变量 / 数据类型&#xff08;二&#xff09; 文章目录JavaScript 入门基础 - 变量 / 数据类型&#xff08;二&#xff09;1.变量1.1 什么是变量1.2 变量在内存中的存储1.3 变量的使用1.4 变量语法扩展1.4.1 更新变量1.4.2 声明多个变量1.4.3 声明变量的特…

node.js+uni计算机毕设项目个性化服务系统小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

一文稿定 Appium 环境配置

Appium 是一个开源的、跨平台的测试框架&#xff0c;可以用来测试 Native App、混合应用、移动 Web 应用&#xff08;H5 应用&#xff09;等&#xff0c;也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念&#xff1a; •无需用户对 App 进行任何修改或…

vue后台管理系统项目-vue-quill-editor实现富文本编辑器功能

富文本编辑器功能实现详细过程 目录 富文本编辑器功能实现详细过程 1.安装富文本插件 2.实现效果 3.实现详细过程 可直接使用 全局引入 局部引入 配置option 扩展需求 自定义配置文字大小 1.安装富文本插件 npm install vue-quill-editor --save //或者 yarn add vu…

AI城管自动识别摊贩占道经营出店经营行为

AI城管自动识别摊贩占道经营出店经营行为通过pythonyolov7对现场画面自动AI实时监测&#xff0c;当监测到流动商贩占道经营违规摆摊出店经营时时&#xff0c;立即告警。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因…

论多窗口相互关联下window.open打开已在的窗口时只激活不刷新的实现方案

前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 来个关注吧&#xff0c;点个赞…

Springboot+Netty实现基于天翼物联网平台CTWing(AIOT)终端TCP协议(透传模式)-设备终端(南向设备)

电信的天翼物联网平台CTWing(AIOT)原先是我们俗称的aep&#xff0c;主要用于接入nb-iot设备&#xff0c;当然也可以接入其他的设备&#xff0c;在熟悉AIOT平台后&#xff0c;做后端的我有时候急需终端样品(智能门禁&#xff0c;支付识别终端&#xff0c;CPE终端&#xff0c;考勤…