📅  最后修改于: 2023-12-03 15:41:57.220000             🧑  作者: Mango
在 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[]
方法也可以使用类似的布尔值数组来选择行。
综上所述,可以通过查询和布尔值数组来选择具有多个条件的行。这些方法都非常灵活,可以处理各种不同的情况。