当前位置: 首页 > article >正文

Python之groupby()及aggregate()方法

目录

  • 数据准备
  • df.describe()
    • 思考1
  • 分组 pd.groupby()
    • 思考2
  • df.aggregate()
    • 思考1

现在有一份titanic_train.csv,包含泰坦尼克号乘客信息及获救情况的明细数据,我们需要使用一些聚合函数,统计相关指标。

数据准备

import pandas as pd
df = pd.read_csv(r'titanic_train.csv')
print(df)

在这里插入图片描述

df.describe()

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

import pandas as pd
df = pd.read_csv(r'titanic_train.csv')
print(df.describe())

在这里插入图片描述

思考1

如果我现在想看按性别分组之后的describe()该怎么办呢?

print(df.groupby('Sex').describe().unstack())

在这里插入图片描述

分组 pd.groupby()

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

计算按性别分组后,乘客年龄的平均值

print(df.groupby('Sex')['Age'].mean())

在这里插入图片描述

思考2

如果我现在想计算按性别分组后,乘客年龄的平均值,最大值,最小值,该怎么做呢?

print(df.groupby('Sex')['Age'].aggregate(['mean','min','max']))

在这里插入图片描述

df.aggregate()

计算按性别分组后,乘客获救的总数及船费的最大值

print(df.groupby('Sex').aggregate({'Survived': 'sum', 'Fare': 'max' }))

在这里插入图片描述

思考1

现在我们思考一个问题,其实groupby()及aggregate()方法很像我们使用的sql,可以进行各种分组聚合操作,那where呢?如何在pandas中实现where呢?这就要使用到filter()函数。
第一种情况:假如我们的样本(即数据集)现在只要年龄>70岁的乘客,该怎么操作呢?

### 方法1
print(df.loc[df.Age >70 ,df.columns]) 
### 方法2
print(df[df.Age >70])

在这里插入图片描述


http://www.kler.cn/a/374907.html

相关文章:

  • 黑马软件测试第二篇_功能测试
  • C02S08-Linux磁盘管理之LVM逻辑卷管理
  • 健康之路押注医药零售:毛利率下滑亏损扩大,医疗咨询人次大幅减少
  • 3000字帮你彻底搞懂Java抽象类与接口的区别(含JDK8接口新增三种方法与丰富案例)
  • C/C++ 矩阵的QR分解
  • 【C++滑动窗口】2653. 滑动子数组的美丽值|1785
  • 手机实时提取SIM卡打电话的信令声音-新的篇章(三、Android虚拟声卡探索)
  • 每日互动基于 Apache DolphinScheduler 从容应对ClickHouse 大数据入库瓶颈
  • 巨好看的登录注册界面源码
  • 【 纷享销客-注册安全分析报告-无验证方式导致安全隐患】
  • C++:二叉搜索树进阶
  • flink 自定义kudu connector中使用Metrics计数平均吞吐量,并推送到自定义kafkaReporter
  • DDIM扩散模型的加速采样(去噪)算法 Denoising Diffusion Implicit Models
  • windows 11 配置 kafka 使用SASL SCRAM-SHA-256 认证
  • 操作符详解
  • Java第二阶段---15异常---第三节 自定义异常
  • 【智能算法应用】秃鹰搜索算法求解二维路径规划问题
  • 适合视频搬运的素材网站推荐——短视频素材下载宝库
  • DirectShow过滤器开发-写MP3音频文件过滤器(再写 写MP3)
  • 鸿蒙系统的优势 不足以及兼容性与未来发展前景分析
  • C++基础_类的基本理解
  • 『 Linux 』网络传输层 - TCP(二)
  • NLP算法工程师精进之路:顶会论文研读精华
  • Rust整合Elasticsearch
  • el-tree展开子节点后宽度没有撑开,溢出内容隐藏了,不显示横向滚动条
  • 使用LangChain控制大模型的输出——解析器Parser