pandas循环实现多次条件查询
时间: 2023-07-13 17:21:40 浏览: 58
在 Pandas 中,可以使用布尔索引实现多次条件查询。以下是一个示例代码,它通过循环实现了多次条件查询:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 定义多个查询条件
conditions = [
{'column': 'age', 'operator': '>', 'value': 30},
{'column': 'gender', 'operator': '==', 'value': 'female'},
{'column': 'income', 'operator': '<', 'value': 50000}
]
# 初始化布尔索引
boolean_index = pd.Series([True] * len(df))
# 循环查询条件,更新布尔索引
for condition in conditions:
column = condition['column']
operator = condition['operator']
value = condition['value']
boolean_index &= df[column].apply(lambda x: eval(f'{x}{operator}{value}'))
# 应用布尔索引,获取查询结果
result = df[boolean_index]
# 输出查询结果
print(result)
```
在上面的示例代码中,我们首先读取了一个名为 `data.csv` 的 CSV 文件,然后定义了多个查询条件。接着,我们初始化了一个布尔索引,将所有行都标记为 True。
然后,我们循环遍历每个查询条件,并使用 `apply()` 函数将该条件应用于数据框中的对应列。`apply()` 函数的参数是一个 lambda 函数,它接受一个参数 `x`,在 lambda 函数中我们使用 `eval()` 函数将查询条件应用于该参数。
最后,我们将所有布尔索引通过逻辑与运算符 `&` 合并到一个布尔索引中,然后将该布尔索引应用于原始数据框中,获取满足所有查询条件的行。