在Python中,使用Pandas库按条件提取数据框中的行可通过以下方法实现:
一、使用布尔索引
布尔索引是Pandas中筛选数据的核心方法,支持单条件、多条件组合及复杂逻辑运算。
基础语法 通过`DataFrame[condition]`筛选满足条件的行,其中`condition`为布尔表达式。
示例代码
假设数据框`df`包含`age`、`city`等列,筛选年龄≥20且来自伦敦的个体:
```python
import pandas as pd
读取数据
df = pd.read_csv('data.csv')
单一条件筛选
filtered_df = df[df['age'] >= 20]
多重条件筛选
filtered_df = df[(df['city'] == 'London') & (df['age'] < 21)]
使用isin()函数筛选特定值
cities = ['New York', 'London']
filtered_df = df[df['city'].isin(cities)]
使用between()方法筛选数值区间
filtered_df = df[(df['age'] >= 18) & (df['age'] < 30)]
使用query()方法简化查询
filtered_df = df.query("age >= 20 and city == 'London'")
```
二、使用`loc`方法
`loc`方法通过标签或布尔数组定位行,支持复杂条件组合。
基础语法
`loc[row_indexer]`,其中`row_indexer`为布尔数组或标签序列。
示例代码
继续以上筛选年龄≥20且来自伦敦的个体:
```python
使用loc方法
filtered_df = df.loc[(df['age'] >= 20) & (df['city'] == 'London')]
```
三、其他方法
`iloc`方法
通过整数位置索引行(从0开始),不依赖列名。
```python
提取前5行
top_5_rows = df.iloc[:5]
```
正则表达式提取(适用于文本文件)
使用`re`模块匹配特定模式。
四、注意事项
数据类型匹配: 确保条件中的数据类型与列类型一致(如数值比较需保持数值类型)。 性能优化
通过以上方法,可灵活实现按条件提取数据框中的行,满足不同场景需求。