句子桥梁网—您身边的句子专家

句子桥梁网—您身边的句子专家

python怎么按照条件提取数据框中的行?

59

在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`模块匹配特定模式。

四、注意事项

数据类型匹配:

确保条件中的数据类型与列类型一致(如数值比较需保持数值类型)。

性能优化:对于大数据集,建议使用向量化操作而非循环。

通过以上方法,可灵活实现按条件提取数据框中的行,满足不同场景需求。