panads 数据筛选 过滤

本文介绍如何使用Python的pandas库从Excel文件中筛选特定条件的学生数据,包括年龄在18到30岁之间且成绩在85到100分之间的学生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有这样一数据集:

 筛选age 在18到30,score在85到100

import pandas as pd

students = pd.read_excel("C:/Users/Administrator/Desktop/Students.xlsx",index_col="ID")
students = students.loc[students.Age.apply(lambda a:18 <= a < 30)].loc[students.Score.apply(lambda s:85 <= s <= 100)]

 

### 关于 Pandas 数据筛选的练习题与示例 #### 示例代码 1: 使用布尔索引筛选数据 通过条件表达式实现数据筛选是一种常见的方法。下面是一个简单的例子,展示如何基于年龄大于等于30岁来筛选数据。 ```python import pandas as pd # 创建一个示例 DataFrame df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [25, 35, 30, 40], 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'] }) # 筛选出年龄大于等于30岁的记录 filtered_df = df[df['Age'] >= 30] print(filtered_df) ``` 此代码片段展示了如何利用布尔索引来过滤满足特定条件的数据[^1]。 --- #### 示例代码 2: 多条件联合筛选 有时需要根据多个条件进行筛选,可以使用逻辑运算符 `&` 和 `|` 实现复杂查询。 ```python # 筛选年龄介于30到40之间且居住在芝加哥或休斯顿的人 condition_age = (df['Age'] >= 30) & (df['Age'] <= 40) condition_city = df['City'].isin(['Chicago', 'Houston']) result = df[condition_age & condition_city] print(result) ``` 这里演示了如何组合多个条件完成更精确的数据筛选操作[^1]。 --- #### 示例代码 3: 缺失值处理中的数据筛选 当存在缺失值时,可借助 `isna()` 方法找到含有缺失值的行;或者用 `notna()` 找到不含缺失值的部分。 ```python # 增加一些具有 NaN 的样本数据 df.loc[2, 'Age'] = None df.loc[3, 'City'] = None # 查找 Age 列中有缺失值的所有行 missing_age_rows = df[df['Age'].isna()] print(missing_age_rows) # 只保留 City 不为空的行 non_missing_city_rows = df[df['City'].notna()] print(non_missing_city_rows) ``` 上述脚本说明了针对含空缺字段的情况执行有效挑选的技术[^4]。 --- #### 学习资源推荐 对于希望深入掌握 Pandas 数据筛选技巧的学习者来说,《Python Data Science Handbook》是一份不可多得的好资料。它不仅涵盖了基础概念还提供了大量实战案例供读者模仿实践[^3]。 此外,在线平台如 Kaggle 提供丰富的教程以及竞赛项目可以帮助巩固所学技能并提升实际应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值