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

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

🎯 今日目标

  • 掌握 DataFrame 的条件筛选(布尔索引)
  • 学会多条件筛选、逻辑运算
  • 熟练使用排序(sort_values)提升数据组织力
  • 结合列选择进行数据提取分析

🧪 一、列选择与基本筛选

✅ 选择单列 / 多列

df["成绩"]          # 返回 Series
df[["姓名", "成绩"]] # 返回新的 DataFrame

✅ 条件筛选(布尔索引)

# 筛选出成绩大于 80 的学生
df[df["成绩"] > 80]# 获取性别为“女”的学生
df[df["性别"] == "女"]

✅ 多条件筛选(逻辑运算符)

# 成绩大于 80 且是男生
df[(df["成绩"] > 80) & (df["性别"] == "男")]# 成绩不及格 或 未填写是否及格
df[(df["成绩"] < 60) | (df["是否及格"] == False)]

⚠️ 注意:逻辑运算使用 &|~,并加上括号!


🔢 二、数据排序

✅ 按单列排序

df.sort_values("成绩")                     # 升序
df.sort_values("成绩", ascending=False)   # 降序

✅ 按多个字段排序

df.sort_values(["是否及格", "成绩"], ascending=[True, False])

🔍 三、列选择 + 排序综合练习

df[df["性别"] == "女"][["姓名", "成绩"]].sort_values("成绩", ascending=False)

🧪 今日练习任务

使用前两天处理好的 students_cleaned.csv 文件,完成以下操作:

📝 练习列表

  1. 筛选出成绩大于等于 80 的学生

  2. 筛选出成绩不及格的男生

  3. 按成绩从高到低排序,并只显示“姓名”和“成绩”

  4. 统计男女生人数(使用 value_counts

  5. 按性别分组后,计算各组平均成绩(使用 groupby

    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。请先运行前两天的清洗脚本。")# 加载 DataFrame
    df = pd.read_csv(input_path)
    print("📊 数据加载成功:")
    print(df.head())# 1. 筛选出成绩 ≥ 80 的学生
    print("\n🎯 成绩 ≥ 80 的学生:")
    print(df[df["成绩"] >= 80])# 2. 筛选出成绩不及格的男生
    print("\n🎯 成绩不及格的男生:")
    condition = (df["成绩"] < 60) & (df["性别"] == "男")
    print(df[condition])# 3. 按成绩从高到低排序,显示“姓名”和“成绩”
    print("\n🎯 按成绩排序(降序)显示姓名和成绩:")
    sorted_df = df.sort_values("成绩", ascending=False)[["姓名", "成绩"]]
    print(sorted_df)# 4. 统计性别分布
    print("\n🎯 男女生人数统计:")
    print(df["性别"].value_counts())# 5. 按性别分组,统计平均成绩
    print("\n🎯 按性别分组的平均成绩:")
    print(df.groupby("性别")["成绩"].mean())
    

    结果输出:

    📊 数据加载成功:姓名 性别    成绩   是否及格
    0  张三  男  88.0   True
    1  李四  女  78.0   True
    2  王五  男  59.0  False
    3  田七  女  78.0  False🎯 成绩 ≥ 80 的学生:姓名 性别    成绩  是否及格
    0  张三  男  88.0  True🎯 成绩不及格的男生:姓名 性别    成绩   是否及格
    2  王五  男  59.0  False🎯 按成绩排序(降序)显示姓名和成绩:姓名    成绩
    0  张三  88.0
    1  李四  78.0
    3  田七  78.0
    2  王五  59.0🎯 男女生人数统计:
    性别
    男    22
    Name: count, dtype: int64🎯 按性别分组的平均成绩:
    性别
    女    78.073.5
    Name: 成绩, dtype: float64
    

✍️ 今日总结

  • 掌握了布尔索引与逻辑运算筛选数据
  • 熟悉了多列组合排序操作
  • 学会了常用的数据子集提取方法
  • 初步接触了分组聚合分析

相关文章:

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

&#x1f3af; 今日目标 掌握 DataFrame 的条件筛选&#xff08;布尔索引&#xff09;学会多条件筛选、逻辑运算熟练使用排序&#xff08;sort_values&#xff09;提升数据组织力结合列选择进行数据提取分析 &#x1f9ea; 一、列选择与基本筛选 ✅ 选择单列 / 多列 df[&quo…...

Android NDK下载链接及配置版本

Android NDK下载链接及配置版本 https://github.com/android/ndk/releases 在build.gralde里面这样配置ndk具体版本号&#xff1a; android {ndkVersion "27.0.12077973" } Android Studio报错&#xff1a;Could not move temporary workspace () to immutable locat…...

Mac Parallels Desktop Kali 2025 代理设置

Mac Parallels Desktop Kali 2025 代理设置 核心步骤&#xff1a; kali设置桥接wifi 查看kali和主机ip 运行命令ifconfig查看kali ip&#xff1a; mac主机ip&#xff1a; kali设置proxy ip填写主机ip&#xff0c;port为主机proxy端口 enjoy...

Python 的内置函数 hash

Python 内建函数列表 > Python 的内置函数 hash Python 的内置函数 hash() 是一个非常有用的工具函数&#xff0c;主要用于获取对象的哈希值。哈希值是一个固定长度的整数&#xff0c;代表该对象的唯一标识。在 Python 中&#xff0c;hash() 函数常用于字典键值、集合元素等…...

文生视频(Text-to-Video)

&#x1f552; 生成时间&#xff1a;每张图大概 10–60 秒&#xff08;取决于设备&#xff09; ✅ 二、文生视频&#xff08;Text-to-Video&#xff09; 以下项目中&#xff0c;很多都基于 SD 模型扩展&#xff0c;但视频生成复杂度高&#xff0c;生成时间一般 超过 30 秒&am…...

(LeetCode 面试经典 150 题) 80. 删除有序数组中的重复项 II (双指针、栈)

题目&#xff1a;80. 删除有序数组中的重复项 II 思路&#xff1a;左指针 left 类似于指向栈顶的下一个待填的元素&#xff0c;每次遍历只需看当前元素nums[i]和栈顶的下一个元素nums[left-2]是否相等&#xff0c;不等就可以插入栈当中。时间复杂度0(n)。 C版本&#xff1a; …...

【舞蹈】编排:如何对齐拍子并让小节倍数随BPM递减

音的强弱关系 当前划分编排最小单位的代码的分析 📊 代码逻辑分析 ✅ 完整性方面 代码逻辑相对完整,包含了: 结构段落分析(intro, verse, chorus等)强拍时间点提取歌词时间轴处理AI增强的编舞建议生成⚠️ 主要问题 1. 强拍对齐逻辑不够精确 # 当前代码只是简单提取…...

LangGraph--基础学习(工具调用)

本节将详细学习大模型是怎么调用工具的&#xff0c;为什么可以调用工具等等&#xff0c;手写一个工具调用&#xff0c;后续可以通过mcp自己调用即可&#xff0c;没必要自己写&#xff0c;但是学习过程中需要手写&#xff0c;通常怎么使用第三方工具调用呢&#xff1f; import o…...

华为云 Flexus+DeepSeek 实战:华为云单机部署 Dify-LLM 开发平台全流程指南【服务部署、模型配置、知识库构建全流程】

华为云 FlexusDeepSeek 实战&#xff1a;华为云单机部署 Dify-LLM 开发平台全流程指南【服务部署、模型配置、知识库构建全流程】 文章目录 华为云 FlexusDeepSeek 实战&#xff1a;华为云单机部署 Dify-LLM 开发平台全流程指南【服务部署、模型配置、知识库构建全流程】前言1、…...

【appium】2.初始连接脚本配置

连接配置 from appium import webdriver desired_caps {platformName: Android,automationName: UIAutomator2,deviceName: ZTEB880,appPackage: com.taobao.taobao,appActivity: com.taobao.tao.welcome.Welcome,noReset: True }driver webdriver.Remote(http://localhost:…...

磁性传感器在电机控制闭环系统中的反馈作用

磁性传感器的基本原理和类型 基本原理 &#xff1a;磁性传感器是基于磁学原理来检测磁场强度、方向或其他与磁场相关的物理量。常见的磁性传感器有霍尔传感器、磁阻传感器等。霍尔传感器是利用霍尔效应工作的&#xff0c;当电流通过置于磁场中的半导体材料时&#xff0c;在垂直…...

Python:.py文件如何变成双击可执行的windows程序?(版本1)

1、如下.py文件&#xff0c;右键重命名文件后缀名&#xff1a;py改为&#xff1a;pyw 2、修改时&#xff0c;提示如下&#xff1a;不用管点击&#xff1a;是即可 3、之后双击&#xff0c;即可执行python代码文件。 好的&#xff0c;我们来详细介绍一下 Python 的 .pyw 文件。 简…...

Spring Boot + MyBatis + Vue:全栈开发的深度剖析与实践指南

一、技术栈深度剖析 &#xff08;一&#xff09;Spring Boot&#xff1a;后端开发的加速器 Spring Boot 是基于 Spring 框架的一个开源 Java 项目&#xff0c;旨在简化基于 Spring 的应用开发。它通过自动配置机制&#xff0c;能够根据项目中添加的依赖自动配置 Spring 和相关…...

学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)

每日一言 你比想象中更强大&#xff0c;那些咬牙坚持的瞬间&#xff0c;都在雕刻更好的你。 案例&#xff1a;C的输入输出 但是我也会用c语言的方式来回顾c语言的写法&#xff0c;因为两种语言都是密不可分的&#xff0c;所以不能忘记&#xff0c;所以两个一起写 注意点&#…...

八、Redis的主从原理、哨兵

简介&#xff1a; 想要了解Redis的主从原理&#xff0c;首先得认识一个基本的分布式理论-CAP理论。要理解这个理论&#xff0c;其实也非常简单。 CAP理论 C&#xff1a;Consistency、A&#xff1a;Available、P&#xff1a;Partition tolerance 。这是CAP三个字母的全称。C&…...

springboot通过独立事务管理器实现资源隔离与精准控制​

安心流转站核心业务模块&#xff0c;为什么&#xff01;我们考虑这样设计&#xff0c;下面讲讲专用事务管理器的设计与必要性​&#xff01; 一、为什么需要专属事务管理器&#xff1f;​​ 在安心流转站模块中&#xff0c;存在 ​​「多资源混合操作」​​ 和 ​​「业务高敏…...

59-Oracle 10046事件-知识准备

上一篇说到了autotrace&#xff0c;SQL调试时候的获取性能和参数数据&#xff0c;直接用上trace&#xff0c;还有个更全能的工具10046。是不是很多小伙伴会对这么个数字&#xff0c;觉得起名很奇怪&#xff0c;数字起名任性。“10046”本质是Oracle内核事件的随机性技术编号&am…...

2025年渗透测试面试题总结-2025年HW(护网面试) 03(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2025年HW(护网面试) 03 1. 同源策略&#xff08;Same-Origin Policy&#xff09; 2. XSS攻击用途 3. XSS类…...

嵌入式开发之嵌入式系统硬件架构设计时,如何选择合适的微处理器/微控制器?

在嵌入式系统硬件架构设计中&#xff0c;选择合适的微处理器 / 微控制器&#xff08;MCU/MPU&#xff09;是关键环节&#xff0c;需从多维度综合评估。以下是系统化的选择策略及核心考量因素&#xff1a; 一、明确应用需求与核心指标 1. 性能需求 处理能力&#xff1a;根据任…...

C++(面向对象编程——继承)

继承基础概念 1.什么是继承&#xff1f; 继承是C三大特性之一&#xff1b;继承是一个已经存在的类的基础上新建一个类&#xff0c;新建的类拥有已经存在的类的特性。主要提现的是代码复用的思想。新的类继承了基类的所有成员变量和成员函数&#xff0c;包括不显示的函数&…...

Unity Shader开发-着色器变体(2)-定义着色器变体

一.定义着色器变体 定义一个着色器变体&#xff08;Shader Variant&#xff09;从概念和实现上讲&#xff0c;主要包括以下几个核心部分 1.使用预编译指令来声明变体关键字 关键字是驱动变体生成的“开关”。它们是简单的字符串标识符&#xff0c;用于在 Shader 代码中标记不…...

Cookie和Session的作用和区别

Cookie 客户端持久化保存服务器数据的一种机制&#xff08;持久化存储就是存硬盘里&#xff09;。Cookie文件数据为键值对形式&#xff0c;客户端根据服务器域名的不同分别存储Cookie&#xff0c;不同域名的Cookie不同&#xff0c;不会产生冲突。 典型应用场景&#xff1a; 保…...

Redis集群部署终极指南:架构选型、生产部署与深度优化

第一部分&#xff1a;Redis集群技术全景解析 1.1 Redis集群演进史 单机时代&#xff08;2009-2012&#xff09;&#xff1a;Redis 2.8之前&#xff0c;纯单机模式复制时代&#xff08;2012-2015&#xff09;&#xff1a;Redis 2.8引入PSYNC改进复制哨兵时代&#xff08;2015-…...

腾讯云IM即时通讯:开启实时通信新时代

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;即时通讯已然成为互联网世界中不可或缺的关键元素。无论是个人日常生活中的社交互动&#xff0c;还是企业运营里的高效协作&#xff0c;即时通讯都发挥着举足轻重的作用&#xff0c;已然渗透到人们生活与工作的每一个角落…...

基于Qt的UDP主从服务器设计与实现

概述 一个基于Qt框架实现的UDP主从服务器系统&#xff0c;该系统具备自动主机选举、故障转移和状态同步等关键功能&#xff0c;适用于分布式能源管理系统中的设备通信与协调。 系统核心功能 1. 自动主机选举与故障转移 系统通过优先级机制实现自动主机选举&#xff0c;当主机…...

JVM(8)——详解分代收集算法

JVM 的分代收集算法不是一种具体的垃圾收集算法实现&#xff0c;而是一种指导思想和设计原则&#xff0c;是现代 JVM 垃圾收集器的基石。其核心思想源于对程序运行过程中对象生命周期分布的观察&#xff08;即弱分代假说&#xff09;。 核心思想与理论基础&#xff1a;分代假说…...

深入Java面试:从Spring Boot到微服务

深入Java面试&#xff1a;从Spring Boot到微服务 在准备互联网大厂的Java岗位面试时&#xff0c;掌握核心技术栈是关键。本文将从技术栈中选取几个重要的技术点进行探讨&#xff0c;帮助你在面试中脱颖而出。 问题一&#xff1a;Spring Boot的核心特性是什么&#xff1f; 面…...

【软考高级系统架构论文】论无服务器架构及其应用

论文真题 近年来,随着信息技术的迅猛发展和应用需求的快速更迭,传统的多层企业应用系统架构面临越来越多的挑战,已经难以适应这种变化。在这一背景下,无服务器架构(Serverless Architecture) 逐渐流行,它强调业务逻辑由事件触发,具有短暂的生命周期,运行于无状态的轻量…...

Snapchat矩阵运营新策略:亚矩阵云手机打造高效社交网络

1. Snapchat平台特性与风控挑战​​ Snapchat作为全球领先的即时社交平台&#xff0c;其独特的阅后即焚功能和强社交属性使其风控系统极为严格&#xff1a; ​​核心风控机制​​ ​​设备指纹检测​​&#xff1a;记录设备ID、系统版本、IP地址等硬件信息​​行为模式分析​…...

BGP路由反射器(RR)实验详解,结尾有详细脚本

目录 路由反射器基础概念 实验拓扑与设计 实验配置步骤 配置验证与排错 实验总结 完整配置命令集 路由反射器基础概念 在传统的IBGP网络中&#xff0c;为了防止路由环路&#xff0c;BGP规定通过IBGP学到的路由不能再传递给其他IBGP对等体&#xff0c;这导致所有IBGP路由…...

【JAVA】数组的使用

文章目录 前言一、数组的基本概念1.1 数组的创建和初始化1.2 数组的基本使用 二、数组是引用类型2.1 初始JVM的内存分布JVM内存划分&#xff08;按功能分区&#xff09; 2.2 基本类型变量与引用类型变量的区别2.3 再谈引用变量2.4 认识null 三、数组作为函数的参数和返回值四、…...

Python的6万张图像数据集CIFAR-10和CIFAR-100说明

CIFAR-10和CIFAR-100数据集是8000万张微小图像数据集的标记子集。CIFAR-10和CIFAR-100都是由AlexKrizhevsky、VinodNair和GeoffreyHinton创建。数据集说明的网页&#xff1a;https://www.cs.toronto.edu/~kriz/cifar.html 一、CIFAR-10数据集 &#xff08;一&#xff09;CIFA…...

CTF--PhP Web解题(走入CTF)

前情提要 分享有趣CTF题目&#xff0c;记录学习过程 题目&#xff08;带注释,方便理解&#xff09; <?php // 开启PHP源代码高亮显示&#xff0c;输出当前文件内容&#xff08;用于调试/展示&#xff09; highlight_file(__FILE__);// 关闭所有错误报告&#xff0c;防止敏感…...

【Linux仓库】进程概念与基本操作【进程·贰】

&#x1f31f; 各位看官好&#xff0c;我是&#xff01; &#x1f30d; Linux Linux is not Unix &#xff01; &#x1f680; 今天来学习Linux中进程概念与基本操作。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更多人哦&#xff01…...

Z-Ant开源程序是简化了微处理器上神经网络的部署和优化

​一、软件介绍 文末提供程序和源码下载 Z-Ant &#xff08;Zig-Ant&#xff09; 是一个全面的开源神经网络框架&#xff0c;专门用于在微控制器和边缘设备上部署优化的 AI 模型。Z-Ant 使用 Zig 构建&#xff0c;为资源受限的硬件上的模型优化、代码生成和实时推理提供端到端…...

面试题-在ts中类型转换的方法

在 TypeScript 中&#xff0c;类型转换主要分为 类型断言&#xff08;Type Assertion&#xff09;、类型守卫&#xff08;Type Guard&#xff09; 和 类型兼容转换 三种方式。以下是详细分类和示例&#xff1a; 一、类型断言&#xff08;Type Assertion&#xff09; 强制编译…...

【论文笔记】【强化微调】T-GRPO:对视频数据进行强化微调

tulerfeng/Video-R1: Video-R1: Reinforcing Video Reasoning in MLLMs [&#x1f525;the first paper to explore R1 for video] 1. 引述 在强化微调中&#xff0c;像 GRPO、DAPO 这样的方法都是对文本或者图片进行微调思考&#xff0c;所以这类微调方法不对时序信息做处理&…...

`shallowReactive` 与 `shallowRef`:浅层响应式 API

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

使用Node.js开发服务端接口

Node.js是一个基于JavaScript的运行时环境&#xff0c;非常适合开发高性能的服务端接口。以下是开发服务端接口的主要方法和步骤。 选择合适的框架 Express、Koa或Fastify是Node.js中常用的框架。Express是最流行的选择&#xff0c;适合快速开发。Koa更轻量&#xff0c;适合需…...

`teleport` 传送 API 的使用:在 Vue 3 中的最佳实践

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

Linux 多种方式实现行转列

目录 一. 前提二. xargs 实现行转列三. paste 实现行转列四. sed 实现行转列 一. 前提 ⏹之前在这下面篇文章中使用sed命令实现了行专列&#xff0c;本篇文章再介绍几种更加简单的方式。 Linux sed案例 &#x1f449; 20231126-2.log 110120 SPLREQUEST 内容1 AAA memberID1…...

AI与SEO关键词协同进化

内容概要 人工智能&#xff08;AI&#xff09;与搜索引擎优化&#xff08;SEO&#xff09;的结合&#xff0c;正深刻变革着关键词策略的制定与执行方式。本文旨在探讨AI技术如何驱动SEO关键词领域的智能化进化&#xff0c;核心在于利用AI强大的数据处理与模式识别能力&#xf…...

C# 网络编程-关于HTTP/HTTPS的基础(一)

一、HTTP基础概念 1. 请求-响应模型 HTTP是基于客户端-服务器的无状态协议&#xff0c;流程如下&#xff1a; 客户端&#xff08;如浏览器&#xff09;发起请求。服务器接收请求并处理。服务器返回响应&#xff0c;包含状态码、Header和响应体。连接关闭&#xff0c;后续请求…...

题解:P11501 [ROIR 2019] 探险队(Day 2)

前言&#xff1a;这道题 dp 做法找环的部分还没有用拓扑做的&#xff0c;补充一下。 这道题其实很像“上司的舞会”&#xff0c;就是求树上最大独立集。 这里我们把每个人向他讨厌的那个人连边&#xff08;发现所有点出度均为 1 1 1&#xff0c;所以这是一个基环树&#xff0…...

读者写者问题与读写锁自旋锁

一、读者写者问题 读者写者问题具有以下特点&#xff1a; 一个交易场所---写者写入数据&#xff0c;读者读数据两种角色---读者&#xff0c;写者三种关系 读者和读者---并发写者和写者---互斥读者和写者---互斥 && 同步 二、读者写者VS生产消费 生产者消费者模型中…...

Sublime text启用vim

打开&#xff1a;首选项 > 设置&#xff0c;在打开的输入框中把 "ignored_packages": ["Vintage"] 修改为 "ignored_packages": []&#xff0c;不忽略Vintage&#xff0c;即为启用Vintage&#xff0c;它是Sublime的内置vim插件。 然后再添加&…...

蚂蚁百宝箱快速创建智能体AI小程序

蚂蚁百宝箱官网https://tbox.alipay.com/community?operationSource1006/ 以下是一篇关于蚂蚁百宝箱快速创建智能体 AI 小程序的图文并茂的博客&#xff1a; 标题&#xff1a;蚂蚁百宝箱快速创建智能体 AI 小程序&#xff0c;开启智能应用新体验 引言 在数字化飞速发展的当…...

【Anconda安装教程】安装到环境配置全流程

目录 前言 一、进入官网下载 二、下载Anconda​编辑 三、安装Anconda 四、配置环境变量 五、验证是否安装成功 六、anaconda的使用 情况一&#xff1a;电脑现在没有装python或者现在装的可以卸载掉 情况二&#xff1a;电脑目前装了python&#xff0c;但想保留它 6.1 进…...

Linux系统编程 | IPC对象---信号量

在前面两篇博客文章中&#xff0c;对Linux系统编程部分IPC三大对象中的消息队列和共享内存的知识体系做了一个大致的梳理&#xff0c;在本篇文章中&#xff0c;将对三大IPC对象中的最后一个信号量做一个总结。如果有需要的博客朋友&#xff0c;可以参考我的Linux系统编程专栏参…...

当数据自己会说话:聚类与分类算法全景解析

从金融风控到医疗诊断&#xff0c;两种机器学习技术如何重塑决策逻辑 在人工智能与数据驱动的时代&#xff0c;聚类和分类作为机器学习的两大核心技术&#xff0c;已成为从海量数据中提取价值的必备工具。它们看似相似——都是将数据划分到不同的组中——但内在逻辑和应用场景却…...