📜  Pandas 中的布尔索引(1)

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

Pandas 中的布尔索引

在 Pandas 中,布尔索引是一种根据指定条件筛选数据的方法。它基于一组布尔值,通过对每个值应用相应的逻辑运算(如与、或、非等)从而得出符合特定条件的数据。

1. 布尔运算符

Pandas 常用的布尔运算符有三个:

  1. & (与):表示逻辑 “AND” 运算,返回两个条件同时成立的结果。

  2. | (或):表示逻辑 “OR” 运算,返回两个条件中至少有一个成立的结果。

  3. ~ (非):表示逻辑 “NOT” 运算,返回条件否定的结果。

2. 案例演示

下面通过一个例子来演示 Pandas 布尔索引的用法:

import pandas as pd

df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 30, 35, 40],
                   'gender': ['F', 'M', 'M', 'M']})

# 使用布尔索引筛选年龄大于 30 的数据
selected_data = df[df.age > 30]

print(selected_data)

输出结果如下:

      name  age gender
2  Charlie   35      M
3    David   40      M

在这个例子中,我们创建了一个 DataFrame,包含名字、年龄和性别这三个列。我们使用布尔索引 df.age > 30 筛选出年龄大于 30 的行,并将其赋值给变量 selected_data。

我们也可以使用多个条件来筛选数据:

import pandas as pd

df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 30, 35, 40],
                   'gender': ['F', 'M', 'M', 'M']})

# 使用布尔索引筛选性别为 'M',且年龄大于 30 的数据
selected_data = df[(df.gender == 'M') & (df.age > 30)]

print(selected_data)

这里我们同时使用了两个条件,一个筛选性别为 'M',一个筛选年龄大于 30。注意,这两个条件要使用 & 连接起来,表示要同时满足这两个条件。

输出结果如下:

    name  age gender
3  David   40      M
3. 总结

本文介绍了 Pandas 中布尔索引的用法和常用的布尔运算符。通过灵活运用布尔索引,我们能够轻松地实现数据筛选和过滤的功能,使得数据分析变得更为高效和简单。