python pandas DataFrame 条件取值

本文介绍了如何使用Pandas库在DataFrame中进行条件查询,包括通过特定条件选取数据、应用apply()方法与lambda表达式筛选姓名中包含特定字符的记录,以及利用isin()方法获取指定范围内的数据。示例代码展示了如何选取年龄为13的学员和姓名中包含'张'的学生,以及获取年龄在11和13岁之间的数据。通过这些方法,你可以灵活地对DataFrame进行复杂的数据过滤。

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

pandas条件取值

存入DataFrame中的数据允许你通过一定的条件取出数据 ,如果你熟悉数据库,就类似于数据库的where条件,根据列指定条件,获取数据,话不多说,咱们通过代码来了解一下对应的使用方法

以下代码截图来自Jupyter中文集成版

Git地址:

https://github.com/DaiMaBang/Jupytericon-default.png?t=M0H8https://github.com/DaiMaBang/Jupyter

上面的代码,实现从DataFrame中获取年龄为13的学员有哪些

同样可以从DataFrame中获取姓名中包含张的学生有哪些,此处用到apply()方法 和lambda 表达式,在后面的文章中还会有对应的详细介绍

通过isin()方法 ,获取包含在哪个范围的数据,获取年龄是11和13岁的学生

df中的条件表达式,可以是"==" ">" "<"  ">=" "<=" "!="  运算表达式,下面不做一一实例。

 

### Python Pandas DataFrame条件筛选取值 在数据分析过程中,Pandas 提供了强大的工具用于根据多个条件对 `DataFrame` 进行筛选和取值。以下是实现这一目标的具体方法。 #### 使用布尔索引进行多条件筛选 可以通过逻辑运算符(如 `&`, `|`, 和 `~`)构建复杂的条件表达式来筛选数据。需要注意的是,在使用这些操作符时,必须用括号将各个条件包裹起来以确保优先级正确[^4]。 ```python import pandas as pd # 创建示例 DataFrame data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [25, 30, 35, 40], 'Salary': [50000, 60000, 70000, 80000]} df = pd.DataFrame(data) # 定义多条件筛选 condition_1 = df['Age'] > 30 condition_2 = df['Salary'] >= 70000 # 应用多条件筛选 filtered_df = df[condition_1 & condition_2] print(filtered_df) ``` 上述代码展示了如何通过布尔索引来选取年龄大于 30 并且工资不低于 70000 的记录。 #### 利用 `.loc[]` 方法进行更精确的选择 除了直接使用布尔数组外,还可以借助 `.loc[]` 方法指定要返回的列名。这种方法更加直观并能增强可读性。 ```python selected_columns = df.loc[(df['Age'] > 30) & (df['Salary'] >= 70000), ['Name', 'Salary']] print(selected_columns) ``` 此段代码仅选择了符合条件的人员的名字及其薪水信息。 #### 结合函数应用 (`apply`) 实现复杂条件匹配 当条件较为复杂或者涉及字符串模式匹配等情况时,可以考虑采用 `apply()` 配合自定义函数或 lambda 表达式的解决方案[^3]。 ```python def custom_condition(row): if row['Age'] > 30 and row['Salary'] >= 70000: return True else: return False result = df[df.apply(custom_condition, axis=1)] print(result) ``` 这段脚本利用了一个简单的辅助函数完成同样的任务——即找出那些既超过一定岁数又拥有较高收入水平的人群成员名单。 --- #### 总结 综上所述,针对不同场景可以选择适合的方式来进行 Pandas 中基于多重标准的数据检索工作。无论是基础的布尔掩码还是高级的应用编程接口调用方式都能很好地满足实际需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值