【Pandas总结】第九节 Pandas_累计与分组 pd.groupby()

news/2024/5/16 13:46:16/文章来源:https://blog.csdn.net/weixin_47139649/article/details/127137917

文章目录

    • 一、数据准备
    • 二、累计值计算
      • 2.1 df.describe()
      • 2.2 常用统计值
    • 三、分组 pd.groupby()
    • 四、更多的使用方法`aggregate()`,`filter()`,`transform()`,`apply()`
      • 4.1 `aggregate()`
      • 4.2 `filter()`
      • 4.3 `transform()`
      • 4.4 `apply()`

在对较大数据进行分析时,有一项最基本的工作就是:有效的数据累积,比如:求和(sum),平均值(mean),中位数(median),最小值(min),最大值(max)等;这每一项指标都是对原本大数据的一个展现,反映了原本大数据的特征。所以本节主要说明两个问题:1. 求累计值;2. 分组求累计值;

一、数据准备

我们以Titanic 数据为例,来进行说明; 所有数据,请参考《泰坦尼克数据集》

import pandas as pd
path = r'./titanic.csv'
df = pd.read_csv(path)

在这里插入图片描述

二、累计值计算

2.1 df.describe()

pandas中提供了一个非常方便的方法df.describe(),来列出常用的统计值,包括:计数值(count),平均值(mean),标准差(std),最小值(min),最大值(max)等,举例如下:

df.describe()

在这里插入图片描述

2.2 常用统计值

常用统计值包括计数值,计数值(count),平均值(mean),标准差(std),最小值(min),最大值(max)等,举例如下:

若不指定具体的列,则Pandas会默认计算所有的可计算的列:

df.mean()  #平均值

在这里插入图片描述
我们详细讲解指定列的情况:

a = df['Age'].mean()
b = df['Age'].max()
c = df['Age'].min()
d = df['Age'].std()
e = df['Age'].median()
f = df['Age'].quantile(0.05)
print('平均值为:',a)
print('最大值为:',b)
print('最小值为:',c)
print('标准差为:',d)
print('中位数为:',e)
print('5%分位数为:',f)

在这里插入图片描述

常用的统计值有以下:

函数描述
count()计数值
first()第一项的值
last()最后一项的值
mean()平均值
median()中位数
min()最小值
max()最大值
std()标准差
var()方差
mad均值绝对偏差
prod()所有项的乘积
sum()所有项的和

三、分组 pd.groupby()

当我们直接使用统计值时,可以知道整体状况,比如所有人的年龄的平均值,但是比如我们想要知道:男性和女性的年龄分别是多少。这时我们就需要使用 pd.groupby().

pd.groupby() 的工作原理就是:分割,应用,组合,如下图所示:

备注:这张图来自《Python 数据科学手册》,是很经典的一张图。
在这里插入图片描述

  • 我们统计所有列的平均值,要求:按性别进行区分;代码如下:
df.groupby('Sex').mean()

在这里插入图片描述

  • 如果我们只关注男性与女性的平均年龄,代码如下:
df.groupby('Sex')['Age'].mean()

在这里插入图片描述

  • 如果我们关注男女年龄的更多统计信息,代码如下:
df.groupby('Sex')['Age'].describe()

在这里插入图片描述

  • 还可以通过.unstack(),变换输出的形状;
df.groupby('Sex')['Age'].describe().unstack()

在这里插入图片描述

四、更多的使用方法aggregate(),filter(),transform(),apply()

4.1 aggregate()

  • 多个统计值,比如我们需要同时看男女的平均年龄与最大年龄、最小年龄,举例如下:
df.groupby('Sex')['Age'].aggregate(['mean','min','max'])

在这里插入图片描述

4.2 filter()

  • 过滤的使用,可以过滤掉统计值满足一定条件的所有数据,例如:我们将数据按照性别分成两大类(即:男女),然后这两组数据里,我们只取年龄平均值大于30的数据,我们可以看到:所有的男性被选中,所有的女性都被过滤掉了;举例如下:
def filter_func(x):return x['Age'].mean() > 30df.groupby('Sex').filter(filter_func)

从下面的截图可以看到,性别里只剩下男性了;说明女性的年龄平均值不到30;

在这里插入图片描述

4.3 transform()

df.groupby('Sex')['Age'].transform(lambda x:x-x.mean())

在这里插入图片描述

4.4 apply()

这里举例为:我们看一下每个人的票价占总票价的比例,代码如下:

def func(x):x['Fare'] = x['Fare']/x['Fare'].sum()return x
df.groupby('Sex')['Name','Fare','Sex'].apply(func)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022-09-18-事务机制与锁

事务机制与锁 事务ACID特性(4大特性):原子性;一致性;隔离性;持久性。事务隔离性(四大隔离级别):读未提交;读已提交;可重复读;串行。脏读:读到了别的事务还没有提交,可能随时会被回滚掉的,有可能不存在的数据,这叫做脏读。 可重复读:我第一次查到的数据,我之后…

【选择】选择排序、堆排序(大根堆【升序】,小根堆【降序】)

简单选择排序 思想:默认0号位,定义为min,再从第二位起,遍历所有,找到一个更小的,把下标赋给min,遍历结束,如果当前i下标的值不是min,则说明min更新,有更小的…

【牛客-算法】 NC48 在旋转过的有序数组中寻找目标值

文章目录🚩 前言1.题目描述2.算法设计思路3.算法实现bug记录🧭 遇到问题(可跳过)🌻 写在前面我最初的通过代码(C语言)4.运行结果5.小结🔥 该专栏作为算法题笔记,记录算法…

Bert在fine-tune训练时的技巧:①冻结部分层参数、②weight-decay (L2正则化)、③warmup_proportion、④

作为一个NLPer,bert应该是会经常用到的一个模型了。但bert可调参数很多,一些技巧也很多,比如加上weight-decay, layer初始化、冻结参数、只优化部分层参数等等,方法太多了,每次都会纠结该怎么样去finetune,…

打印数组的所有子集

打印数组的所有子集 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;打印数组的所有子集 CSDN&#xff1a;打印数组的所有子集 无重复值情况 题目描述见: LeetCode 78. Subsets 主要思路 定义递归函数 void p(int[] arr, int i, LinkedList<Integer…

【数据结构与算法】深度理解队列(上)

✨hello&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f68e;&#x1f68e;系列专栏&#xff1a;【数据结构与算法】 &#x1f680;&#x1f680;本篇内容:队列从0到1的学习&#xff01; ⛵⛵作者简介&#xff1a;一名双非本科大三在读的科班Java编程小…

11-二叉树-删除

delete(ElementType e)&#xff1a;删除某个值为 e 的结点。实现方法有多种。 按添加结点的规则&#xff0c;小于根结点的放在左边&#xff0c;大于等于根结点的放在右边。b 小于 c 中任意一个子结点&#xff0c;只能放在 c 中最小的一个结点 e 的左子结点下。 除 e 外&#x…

Git基础操作

拉取代码直接clone,复制远程仓库文件夹 git clone git@gitee.com:chen-LinQiang/my-notes.git 在已有仓库文件夹中拉代码 # 初始化 git init # 关联远程仓库 git remote add origin git@gitee.com:chen-LinQiang/my-notes.git # 切换到本地主分支 git checkout master # 若报错…

SpringBoot员工管理的项目——SpringBoot首页定制的操作和国际编码操作(课时十五)

SpringBoot员工管理的项目——SpringBoot后台数据库的搭建(课时十四)_星辰镜的博客-CSDN博客 上篇文章的的文章路径 读者可以回看 有些内容在这里不在说明 本博文完成的两个功能: 利用 Thymeleaf模板引擎完成员工管理系统的的首页定制 国际化编码格式操作 <!--Thymeleaf 说…

计算机网络——媒体接入控制

&#x1f49f;&#x1f49f;前言 ​ 友友们大家好&#xff0c;我是你们的小王同学&#x1f617;&#x1f617; 今天给大家打来的是 计算机网络——媒体接入控制 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞&#x1f44d; 收藏⭐ 评论&#x1f4c4; 小王…

20、DQL(编写顺序和执行顺序)

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 DQL&#xff08;编写顺序和执行顺序&#xff09; 执行顺序&#xff1a; 1、from&#xff08;from 查什么表是第一&#xff09; 2、where 3、group by 和 having 4、select 5、order by&#xff08;你很与众不同哈&…

Promise 及其基于 Typescript 的实现

Promise 的概念、用法与实现作者&#xff1a; jcLee95 邮箱 &#xff1a;291148484163.com CSDN 主页&#xff1a;https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/121506948 相关文章&…

APP攻防

信息收集 APP-外在抓包-Fd&茶杯&BurpAPP-外在封包-封包监听工具APP-内在提取-AppInfoScannerAPP-内在搜索-反编译载入IDEAAPP-资源提取-安装包&资源文件APP-框架使用-Xposed&JustTrustMe fiddler 1、安装证书 然后设置-WLAN-高级设置-安装证书-安装FidderRo…

【C语言】字符+字符串函数精讲

前言 ● 从我们第一个C程序——Hello world 的诞生&#xff0c;到字符串的拷贝、比较等各种操作的实现。从中不难发现&#xff1a;我们在处理C语言时对字符和字符串的处理很是频繁&#xff0c;因此学习字符及字符串的各种操作函数尤显其必要性。 ● C语言本身是没有字符串类型的…

SpringBoot项目中计量单位与进制转换问题解决措施及数据校验怎么操作

写在前面&#xff1a; 继续记录自己的SpringBoot学习之旅&#xff0c;这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 3.2 配置高级 3.2.1 ConfigurationProperties注解 …

【小程序从0到1】小程序条件渲染|列表渲染

欢迎来到我的博客 &#x1f4d4;博主是一名大学在读本科生&#xff0c;主要学习方向是前端。 &#x1f36d;目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏 &#x1f6e0;目前正在学习的是&#x1f525;React/小程序React/小程序React/小程序&am…

【mysql】performance_schema初识

1、linux下一些mysql常用的命令 打开mysqld服务 systemctl start mysqld关闭mysqld服务 systemctl stop mysqld查看 mysqld状态 service mysqld status修改MySQL的配置文件 vim /etc/my.cnf2、什么是performance_schema performance_schema是运行在较低级别的用于监控mys…

最小 XOR leetcode第 313 场周赛 第三题

给你两个正整数 num1 和 num2 &#xff0c;找出满足下述条件的整数 x &#xff1a; x 的置位数和 num2 相同&#xff0c;且 x XOR num1 的值 最小 注意 XOR 是按位异或运算。 返回整数 x 。题目保证&#xff0c;对于生成的测试用例&#xff0c; x 是 唯一确定 的。 整数…

用同一个GroovyClassLoader加载的Class真的无法回收吗

源码地址&#xff1a;https://gitee.com/mr_wenpan/basis-enhance/tree/master/enhance-boot-groovy-engine 一、问题描述 最近需要使用到groovy&#xff0c;于是进行了一番调研&#xff0c;看到网上有个很常见的说法&#xff0c;如下&#xff1a; 如果一个项目里使用同一个G…

matlab与python编程对照

格式 n. 功能 Matlab编程 Matlab输出 Python编程 Python输出 ——————————————————————————————————— 1. for 循环 Matlab编程 for i 1:3i end Matlab输出 Python编程 for i in range (1,4):print(i) Python输出 —————…