📌  相关文章
📜  选择具有多个条件的行 pandas 查询 - Python (1)

📅  最后修改于: 2023-12-03 15:41:57.220000             🧑  作者: Mango

选择具有多个条件的行 pandas 查询 - Python

在 pandas 中,可以使用 query() 方法,通过多个条件选择行。以下是一个示例:

import pandas as pd

# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'Dave', 'Edgar'],
       'age': [25, 30, 35, 40, 45],
       'gender': ['F', 'M', 'M', 'M', 'M']}

df = pd.DataFrame(data)

# 通过多个条件选择行
df_filtered = df.query('age > 30 & gender == "M"')

# 显示筛选后的数据框
print(df_filtered)

该程序将运行一个 pandas 查询来选择满足 (age > 30)(gender == "M") 两个条件的行。该查询使用逻辑运算符 & 来表示这两个条件必须同时满足。查询字符串需要使用引号括起来,并且在比较值为字符串时需要使用双引号括起来。

输出结果如下:

      name  age gender
2  Charlie   35      M
3     Dave   40      M
4    Edgar   45      M

以上是一个简单的示例,可以通过更改查询字符串和比较运算符来筛选出需要的行。

另外,还可以使用 loc[]iloc[] 方法来选择具有多个条件的行。这两个方法都需要用布尔值数组作为索引,以选择要包含的行。以下是一个示例:

# 通过布尔值数组选择行
bool_array = (df['age'] > 30) & (df['gender'] == 'M')

df_filtered = df.loc[bool_array]

# 显示筛选后的数据框
print(df_filtered)

该程序将运行一个布尔值数组来选择所有满足 (age > 30)(gender == "M") 两个条件的行。

输出结果如下:

      name  age gender
2  Charlie   35      M
3     Dave   40      M
4    Edgar   45      M

这里使用了 loc[] 方法,但是 iloc[] 方法也可以使用类似的布尔值数组来选择行。

综上所述,可以通过查询和布尔值数组来选择具有多个条件的行。这些方法都非常灵活,可以处理各种不同的情况。