Python 数据分析与可视化 Day 4 - Pandas 数据筛选与排序操作

🎯 今日目标

  • 掌握 Pandas 中 groupby() 的使用方式
  • 学会使用 agg() 方法进行多个聚合
  • 掌握 pivot_table() 构建透视表
  • 结合分组与排序进行更深入的分析

🧮 一、基本分组统计(groupby)

✅ 分组 + 单列聚合

df.groupby("性别")["成绩"].mean()

输出(示例):

性别
女    75.2
男    72.3

✅ 分组 + 多列聚合

df.groupby("性别")[["成绩", "是否及格"]].mean()

🔧 二、自定义聚合(agg)

✅ 一个字段多个聚合函数

df.groupby("性别")["成绩"].agg(["mean", "max", "min", "count"])

✅ 多字段多个聚合函数

df.groupby("性别").agg({"成绩": ["mean", "std"],"是否及格": "sum"
})

📊 三、透视表(pivot_table)

pd.pivot_table(df, values="成绩", index="性别", columns="是否及格", aggfunc="mean")

可以理解为 Excel 中的“数据透视表”


🔁 四、结合分组后的排序

grouped = df.groupby("性别")["成绩"].mean().reset_index()
grouped.sort_values("成绩", ascending=False)

🧪 今日练习任务

继续使用 students_cleaned.csv,完成以下练习:

  1. 按性别统计学生人数

  2. 按性别统计平均成绩、最高分、最低分

  3. 按性别和是否及格双重分组,统计各组平均成绩

  4. 构建透视表,显示是否及格和性别的成绩均值交叉表

  5. 输出平均成绩最高的性别组

    import pandas as pd
    import os# 路径设置
    input_path = "data/students_cleaned.csv"if not os.path.exists(input_path):raise FileNotFoundError("❌ 找不到文件:data/students_cleaned.csv,请先运行清洗脚本。")# 加载数据
    df = pd.read_csv(input_path)
    print("✅ 已加载清洗后的学生数据:")
    print(df.head())# 1. 按性别统计人数
    print("\n👥 每个性别的学生人数:")
    print(df["性别"].value_counts())# 2. 按性别统计平均成绩、最高分、最低分
    print("\n📊 各性别的成绩统计:")
    gender_stats = df.groupby("性别")["成绩"].agg(["mean", "max", "min", "count"])
    print(gender_stats)# 3. 按性别 & 是否及格 进行双重分组统计平均成绩
    print("\n📊 按性别和是否及格分组的平均成绩:")
    multi_group = df.groupby(["性别", "是否及格"])["成绩"].mean()
    print(multi_group)# 4. 构建透视表:性别 vs 是否及格
    print("\n📊 透视表(性别 × 是否及格 → 平均成绩):")
    pivot = pd.pivot_table(df, values="成绩", index="性别", columns="是否及格", aggfunc="mean")
    print(pivot)# 5. 平均成绩最高的性别组
    print("\n🏆 平均成绩最高的性别:")
    top_group = gender_stats["mean"].idxmax()
    top_score = gender_stats["mean"].max()
    print(f"{top_group}(平均成绩:{top_score:.2f})")# 6. (可选)保存统计结果
    output_path = "data/gender_group_stats.csv"
    gender_stats.to_csv(output_path, encoding="utf-8")
    print(f"\n✅ 性别分组统计结果已保存到 {output_path}")
    

    输出示例:

    ✅ 已加载清洗后的学生数据:姓名 性别    成绩  是否及格
    0  张三   男  88.0   True
    1  李四   女  73.5   True
    2  王五   男  59.0  False
    3  田七   女  73.5  False👥 每个性别的学生人数:
    女    22
    Name: 性别, dtype: int64📊 各性别的成绩统计:mean   max   min  count
    性别                            
    女      73.5  73.5  73.5      273.5  88.0  59.0      2📊 按性别和是否及格分组的平均成绩:
    性别  是否及格
    女   False    73.5True      73.5False    59.0True      88.0
    Name: 成绩, dtype: float64📊 透视表(性别 × 是否及格 → 平均成绩):
    是否及格     False  True
    性别                    
    女         73.5  73.559.0  88.0🏆 平均成绩最高的性别:
    女(平均成绩:73.50)✅ 性别分组统计结果已保存到 data/gender_group_stats.csv
    

    gender_group_stats.csv在这里插入图片描述


📌 补充知识点

  • groupby() 默认返回的是“分组后对象”,需要用聚合函数 .mean().sum().agg() 等触发计算
  • 你可以使用 .reset_index() 将 groupby 的结果还原为 DataFrame 格式,便于后续排序、可视化等

✍️ 今日总结

  • 理解并掌握了 Pandas 中 groupby 的用法
  • 学会了使用 agg() 进行自定义多重聚合
  • 学会了构建透视表并进行交叉分析
  • 初步具备了分组维度下的深层次分析能力

题外话

在这里插入图片描述

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

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

相关文章

智能营销系统对企业的应用价值

在当前快速迭代的商业环境中,企业与客户的连接方式正经历前所未有的深刻变革。传统的市场策略在数据洪流和日益个性化的消费者需求面前,效能正逐步递减。 企业决策者普遍面临一个核心挑战:如何在复杂多变的市场中,实现营销资源的最…

docker镜像中集成act工具

# 使用官方 Ubuntu 22.04 基础镜像 FROM ubuntu:22.04# 安装系统依赖并清理缓存 RUN apt-get update && \apt-get install -y --no-install-recommends \curl \git \make \gcc \g \libssl-dev \pkg-config \&& \apt-get clean && \rm -rf /var/lib/apt…

Docker 与 Containerd 交互机制简单剖析

#作者:邓伟 文章目录 一、背景:Docker 架构的演进之路1.1 从自研运行时到 OCI 标准化1.2 现行架构分层模型 二、核心交互组件解析2.1 通信协议:gRPC 双向流的应用2.2 镜像生命周期管理交互2.2.1 镜像拉取流程(以 docker pull 为例…

C++ Vector 基础入门操作

一、Vector初始化&#xff1a;5种常用方式 ​​1. 默认构造​​ 创建空容器&#xff0c;适用于后续动态添加元素&#xff1a; std::vector<int> vec; // 空vector&#xff0c;size0 2. 指定大小和初值​​ 预分配空间并初始化元素&#xff1a; std::vector<int>…

社会治理创新平台PPT(48页)

社会治理创新背景 社会治理创新旨在加强和完善基层社会管理和服务体系&#xff0c;提升政府效能&#xff0c;强化城乡社区自治和服务功能。自党的十六届四中全会提出“推进社会管理体制创新”以来&#xff0c;社会治理创新已成为政府工作的重要篇章。 社会治理创新现状与挑战…

论文笔记:Answering POI-Recommendation Questions using TourismReviews

2021 CIKM 1 intro 根据贝恩公司&#xff08;Bain & Company&#xff09;2019年的一份报告&#xff0c;旅行者在预订前通常会进行33至500次网页搜索 部分用户会访问超过50个旅游网站&#xff0c;三分之一的上网时间都用于与旅行相关的活动。在某些情况下&#xf…

带约束的高斯牛顿法求解多音信号分离问题

一、信号模型与优化问题建立 1. 复信号模型 设观测的复信号由两个单频复指数信号加噪声组成&#xff1a; x [ n ] A 0 e j ( 2 π f 0 n T s ϕ 0 ) A 1 e j ( 2 π f 1 n T s ϕ 1 ) w [ n ] , n 0 , 1 , … , N − 1 x[n] A_0 e^{j(2\pi f_0 n T_s \phi_0)} A_1 e…

Java并发编程中高效缓存设计的哲学

文章目录 引言详解缓存的设计和演进基于缓存存储运算结果锁分段散列减小锁粒度异步化提升处理效率原子化避免重复运算小结参考引言 本文将基于并发编程和算法中经典的哈希取模、锁分段、 异步化、原子化。这几个核心设计理念编写逐步推演出一个相对高效的缓存工具,希望对你有…

MATLAB的.mat文件

.mat文件是MATLAB的专有二进制数据文件格式&#xff0c;用于保存MATLAB工作空间中的变量和数据。 主要特点&#xff1a; 1. 存储内容&#xff1a; 各种类型的变量&#xff08;数组、矩阵、结构体、单元数组等&#xff09;函数句柄、对象稀疏矩阵多维数组 2. 文件特性&#…

ICM-20948 Wake on Motion功能开发全过程(7)

接前一篇文章:ICM-20948 Wake on Motion功能开发全过程(6) 探索工作 深入探索 上一回讲到,笔者在InvenSense官网上找到了实现Wake on Motion功能的指导文档。其中主要步骤如下: 本回就来结合文档中的步骤,详细讲解每一步。 (1)第1步 —— 初始化所有配置 注意,文档…

Dipal D1:数字人时代的全新人机关系形态

在科技不断突破的今天,虚拟与现实之间的界限正变得越来越模糊。Dipal D1 作为全球首款搭载2.5K曲面OLED显示屏的3D AI数字人硬件产品,不仅是一款情感陪伴设备,更是AI、AIGC、动漫文化与情感科技深度融合下的全新交互入口。它代表着“孤独经济”、“创作者经济”和“虚拟互动…

Linux离线编译安装nginx

Linux离线安装nginx 1.切换到root用户 #切换到root用户 su - #退出root用户 exit2.目录操作 #切到根目录 cd / #查看目录 ls #切目录 cd /home/... #到对应的目录下解压3.安装Nginx 在有网络的设备上下载以下文件&#xff1a; Nginx&#xff1a;从 nginx.org/en/download…

Qt PyQt与PySide技术-C++库的Python绑定

Qt PyQt与PySide技术-C库的Python绑定 一、概述二、区别于联系1、PyQt&#xff1a;Riverbank Computing的解决方案a、发展历程b、许可模式c、技术特点 2、PySide&#xff1a;Qt官方的Python绑定a、发展历程b、许可模式c、技术特点 三、对比许可证功能与兼容性社区与维护其他差异…

使用.detach()代替requires=False避免计算图错误

解决对一个对象多次BP更新时造成的RuntimeError: you can only change requires_grad flags of leaf variables.问题_解决对一个对象多次bp更新时造成的问题-CSDN博客 代码中存在一个特征需要参与辅助损失的计算&#xff0c;由于需要反复进行反向传播更新&#xff0c;计算图容易…

linux+docker+ollama+git常用指令

1、Linux命令 新建txt文件&#xff1a;touch xxx.txt 给txt文件夹权限&#xff1a;chmod x xxx.txt 查看日志&#xff1a;tail -f xxx.log / less xxx.log 根据关键字查看日志&#xff1a;grep "error" 文件名 查看端口状态&#xff1a;netstat -an|grep xxxxx 查看…

【八股消消乐】消息队列优化—系统架构设计

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

WebSocket长连接在小程序中的实践:消息推送与断线重连机制设计

一、引言&#xff1a;为什么需要WebSocket长连接&#xff1f; 传统方案的痛点&#xff1a;HTTP轮询的低效性&#xff08;高延迟、高资源消耗&#xff09;小程序场景需求&#xff1a;实时消息推送&#xff08;如IM、直播弹幕、IoT设备状态同步&#xff09;技术选型对比&#xf…

MySQL索引使用指南:何时该为字段添加索引?

在MySQL的性能优化中&#xff0c;索引是最常用且有效的手段之一。但“索引不是万能药”——盲目添加索引可能导致写操作变慢、存储空间浪费&#xff0c;甚至引发索引失效问题。本文将结合原理与实战场景&#xff0c;帮你理清​​“何时该用索引”​​的核心判断逻辑。 一、先理…

AI时代关键词SEO优化

内容概要 在人工智能&#xff08;AI&#xff09;驱动的时代浪潮下&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;正迎来深刻变革&#xff0c;关键词策略已成为流量获取的核心战场。本文将系统剖析AI时代关键词优化的前沿方法&#xff0c;涵盖语义分析的精准研究、用户意…

GO 语言学习 之 代码风格

1. 命名规范 字母数字和下划线组成 以小写字母、大写字母或下划线开头 不允许包含标点符号、运算符、空白字符&#xff08;空格、TAB、换行&#xff09;等 采用驼峰命名法 &#xff08;大驼峰、小驼峰&#xff09; 见名知义&#xff1a;命名要有实际意义&#xff0c;易读性&am…