Python 数据分析学习笔记:Pandas 逻辑运算

🔹 DA9:2020年毕业且使用Java的用户

📌 题目描述

筛选出 2020年毕业常用语言为 Java 的用户,输出他们的全部信息,并设置显示选项以完整显示数据。

✅ 正确代码
import pandas as pd# 读取数据
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')# 设置显示选项
pd.set_option('display.width', 300)          # 字符显示宽度
pd.set_option('display.max_rows', None)      # 显示所有行
pd.set_option('display.max_columns', None)   # 显示所有列# 方法1:布尔索引(推荐)
result = Nowcoder[(Nowcoder['Graduate_year'] == 2020) & (Nowcoder['Language'] == 'Java')]# 方法2:使用 query(更清晰)
# result = Nowcoder.query("Graduate_year == 2020 and Language == 'Java'")print(result)
💡 扩展知识
技术点说明
& 操作符表示“与”(and),必须加括号(A) & (B)
query() 方法支持字符串表达式,可读性强,支持 and/or/in
pd.set_option()控制 Pandas 输出格式,避免 ... 或换行
== 比较注意数据类型:2020(int) vs '2020'(str)

✅ 推荐使用 query() 处理复杂条件,代码更易读。


🔹 DA9:筛选 C 系语言用户(C/C++/C#)

📌 题目描述

筛选出使用 C++、C 或 C# 的用户,输出他们的全部信息。

✅ 正确代码
import pandas as pd# 读取数据
df = pd.read_csv('Nowcoder.csv', sep=',')# 设置显示选项
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.width', None)# 使用 isin() 筛选多个值(推荐)
result = df[df['Language'].isin(['C++', 'C', 'C#'])]# 注意:'CPP' 应为 'C++',检查数据真实值
# 可先查看:print(df['Language'].unique())print(result)
💡 扩展知识
方法说明
.isin(list)判断某列值是否在给定列表中,天然支持“或”逻辑 ✅
替代写法(A) | (B) | (C),但代码冗长
数据清洗使用 .str.strip() 去空格,.str.lower() 统一大小写
unique()查看列中唯一值,排查拼写问题

isin() 是处理“多选一”场景的最佳实践。


🔹 DA10:刷题量 ≥500 的用户等级与成就值

📌 题目描述

筛选出刷题量不低于 500 的用户,输出他们的 等级(Level)成就值(Achievement_value)

✅ 正确代码
import pandas as pd# 读取数据
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')# 筛选刷题量 >= 500 的用户
df = Nowcoder[Nowcoder['Num_of_exercise'] >= 500]# 输出指定两列
print(df[['Level', 'Achievement_value']])
💡 扩展知识
技术点说明
df[['col1', 'col2']]选择多列,双层中括号
链式索引风险df[cond]['col'] 可能触发 SettingWithCopyWarning
推荐写法df.loc[cond, ['Level', 'Achievement_value']] 更安全
数据类型确保 Num_of_exercise 是数值型(int/float)

✅ 安全写法:

print(Nowcoder.loc[Nowcoder['Num_of_exercise'] >= 500, ['Level', 'Achievement_value']])

🔹 DA11:筛选非2018年毕业的 C++ 7级用户

📌 题目描述

筛选出 语言为 C++、等级为 7 的用户,再从中排除 2018年毕业 的用户,输出全部信息。

✅ 正确代码
import pandas as pd# 读取数据
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')# 设置显示选项
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.width', None)# 方法1:分步筛选
df = Nowcoder[(Nowcoder['Language'] == 'C++') & (Nowcoder['Level'] == 7)]
result = df[df['Graduate_year'] != 2018]# 方法2:一步完成(推荐)
# result = Nowcoder.query("Language == 'C++' and Level == 7 and Graduate_year != 2018")print(result)
💡 扩展知识
技术点说明
!=“不等于”操作符,用于排除特定值
多条件组合使用 &(与)、`
括号重要性每个条件必须加括号:(A) & (B) & (C)
query() 优势支持 !=!=innot in,逻辑清晰

✅ 推荐使用 query() 处理复杂条件:

Nowcoder.query("Language == 'C++' and Level == 7 and Graduate_year != 2018")

🎯 总结:Pandas 核心筛选技巧速查

操作推荐方法
单条件筛选df[cond]
多条件“与”(A) & (B) 或 query("A and B")
多条件“或”(A) | (B) 或 .isin([...])
“不等于”!=
选择多列df[['col1', 'col2']] 或 df.loc[:, ['col1', 'col2']]
避免链式索引优先使用 loc
显示全部数据pd.set_option('display.max_columns', None) 等

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

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

相关文章

图像边缘检测

目录 一.图像边缘检测 1.图像边缘检测概述 2.Sobel算子原理与实现 3.Scharr算子 4.Laplacian算子 5.Canny边缘检测(重点) 6.效果对比 一.图像边缘检测 1.图像边缘检测概述 2.Sobel算子原理与实现 代码是实现步骤: 边缘检测是图像处…

zookeeper-znode解析

一. 数据模型:ZK拥有一个命名空间就像一个精简的文件系统,不同的是它的命名空间中的每个节点拥有它自己或者它下面子节点相关联的数据。ZK中必须使用绝对路径也就是使用“/”开头。二. znode:zk目录树中每个节点对应一个znode。每个znode维护…

Redis 高可用篇

主从复制是怎么实现的? 如果服务器发生了宕机,由于数据恢复是需要点时间,那么这个期间是无法服务新的请求的;如果这台服务器的硬盘出现了故障,可能数据就都丢失了。 要避免这种单点故障,最好的办法是将数据…

C++ 指针与引用面试深度解析

C 指针与引用面试深度解析面试官考察指针和引用,不仅是考察语法,更是在考察你对C中 “别名” (Aliasing) 与 “地址” (Addressing) 这两种间接访问机制的理解,以及你对 “代码安全” 和 “接口设计” 的思考深度。第一部分:核心知…

LinuxC语言线程的同步与互斥

一.线程的同步与互斥1. 基础概念:1.1 互斥:对共享资源的访问,同一时刻只允许一个访问者进行访问,互斥具有唯一和排他性,互斥无法保证对共享资源的访问顺序1.2 同步: 在互斥的基础上,实现对共享资源的有序访问。2. 互斥…

Centos 7.6离线安装docker

在内网环境下,一般不能联网在线部署,这时候就需要以离线的方式安装docker。本节内容主要总结一下在CentOS 7.6环境中离线安装docker的步骤。 1、下载docker安装包 https://pan.baidu.com/share/init?surlPaUllQZ-dwpgJ7quA5IkcQ&pwd4sfc 2、上传到服…

生成式推荐模型的长序列特征:离线存储

文章目录长序列特征的例子1. Event-level features2. Sequence-level featuresAggregation FeaturesSession-based FeaturesTemporal Order Features3. User-level features4. Interaction features (between user and item/context)how to store the long term user behaviro …

Linux inode 实现机制深入分析

Linux inode 实现机制深入分析 1 Inode 基本概念与作用 Inode(Index Node)是 Linux 和其他类 Unix 操作系统中文件系统的核心数据结构,用于存储文件或目录的元数据(metadata)。每个文件或目录都有一个唯一的 inode&…

Flask 之请求钩子详解:掌控请求生命周期

在构建现代 Web 应用时,我们常常需要在请求的不同阶段自动执行一些通用逻辑,例如:记录日志、验证权限、连接数据库、压缩响应、添加安全头等。如果在每个视图函数中重复这些代码,不仅冗余,而且难以维护。Flask 请求钩子…

设计模式七大原则附C++正反例源码

设计模式的七大原则是软件设计的基石,它们指导开发者构建高内聚、低耦合、易维护、可扩展的系统。以下以C++为例,详细介绍这七大原则: 一、单一职责原则(Single Responsibility Principle, SRP) 定义:一个类应该只有一个引起它变化的原因(即一个类只负责一项职责)。 …

云计算之中间件与数据库

一、云数据库的特性云数据库是指被优化或部署到一个虚拟计算环境中的数据库,可以实现按需付费、按需扩展、高可用性以及存储整合等优势。根据数据库类型一般分为关系型数据库和非关系型数据库(NoSQL数据库) 。云数据库的特性序号云数据库的特…

codeforces(1045)(div2) E. Power Boxes

E.电源箱 每次测试时限: 2 秒 每次测试的内存限制:256 兆字节 输入:标准输入 输出:标准输出 这是一个互动问题。 给你 nnn 个方格,索引从 111 到 nnn 。这些方格看起来完全相同,但是每个方格都有一个隐藏的…

4G模块 EC200通过MQTT协议连接到阿里云

命令说明 基础AT指令ATI显示MT的ID信息ATCIMI查询IMSIATQCCID查询ICCIDATCSQ查询信号强度ATCGATT?查询当前PS域状态MQTT配置指令ATQMTCFG配置MQTT可选参数ATQMTCFG配置MQTT可选参数.ATQMTOPEN打开MQTT客户端网络ATQMTCLOSE关闭MQTT客户端网络ATQMTCONN连接客户端到MQTT服务器…

如何选择合适的安全监测预警系统

在当今高度复杂和互联的数字化时代,安全威胁无处不在且持续演变。一套高效、可靠的安全监测预警系统已成为组织保障其物理资产、数字信息和关键业务连续性的核心基础设施。然而,面对市场上琳琅满目的产品和解决方案,如何做出符合自身需求的选…

ELK-使用logstash-output-zabbix插件实现日志通过zabbix告警

ELK-使用logstash-output-zabbix插件实现日志通过zabbix告警logstash-output-zabbix插件安装编辑logstash配置文件在zabbix上创建模板实现的效果:elk收集上来的日志中含有报错时(例如error等),logstash过滤出来将这部分日志打到zabbix,再通过zabbix结合钉…

【C++游记】物种多样——谓之多态

枫の个人主页 你不能改变过去,但你可以改变未来 算法/C/数据结构/C Hello,这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕,我们继续来学习C的内容呀。C是接近底层有比较经典的语言,因此学习起来注定枯燥无味&#xf…

Visual Scope (Serial_Digital_Scope V2) “串口 + 虚拟示波器” 工具使用记录

VisualScope 就是一个 “串口 + 虚拟示波器” 的工具,适合在没有昂贵示波器/逻辑分析仪时做嵌入式调试。它的核心步骤就是 MCU 定时发数据 → PC 串口接收 → 软件画波形。 首先准备串口通信工具后,插入电脑,安装完USB转串口驱动后,在“我的电脑”-“设备及管理器”-“端口…

c++ 观察者模式 订阅发布架构

#include <iostream> #include <vector> #include <algorithm> #include <memory> #include <mutex>// 观察者接口 class IObserver { public:virtual ~IObserver() default;virtual void update(const std::string& message) 0; };// 主题…

oracle 表空间扩容(增加新的数据文件)

SELECT tablespace_name,file_name,ROUND(bytes / 1024 / 1024, 2) AS size_mb,ROUND(maxbytes / 1024 / 1024, 2) AS max_size_mb,status,autoextensible FROM dba_data_files ORDER BY tablespace_name;--给表空间增加一个新数据库文件ALTER TABLESPACE EAS_D_EAS_STANDARDAD…