Python Pandas中布尔索引的用法详解

  • Post category:Python

我来详细讲解一下“Python Pandas中布尔索引的用法详解”。

Python Pandas中布尔索引的用法详解

什么是布尔索引

布尔索引是指通过逻辑条件来对数据进行筛选的一种方法。在Python Pandas中,可使用布尔索引来实现对数据框的筛选。

布尔索引的语法格式

df[condition]

其中df为数据框,condition为筛选条件,条件通常为布尔表达式,返回True或False。

常用的布尔索引运算符

在布尔索引中,常用的运算符包括:&|~

  • &表示“与”,满足两个条件的元素将被筛选。
  • |表示“或”,满足任意一个条件的元素将被筛选。
  • ~表示“非”,不满足条件的元素将被筛选。

示例1:使用布尔索引筛选数据

下面我们来演示一个基本的使用布尔索引筛选数据的例子。我们有一个员工工资表,包含员工编号、姓名、性别、工龄和工资等信息。现在我们要筛选出所有女性员工的工资信息。

首先,我们定义数据框,并生成样本数据。

import pandas as pd

data = {
    '员工编号': ['001', '002', '003', '004', '005', '006'],
    '姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八'],
    '性别': ['男', '男', '女', '女', '女', '男'],
    '工龄': [3, 1, 2, 4, 5, 2],
    '工资': [5000, 6000, 7000, 8000, 9000, 10000]
}

df = pd.DataFrame(data)

然后,我们使用布尔索引筛选出所有女性员工的工资信息。

df_female = df[df['性别'] == '女']
print(df_female[['姓名', '工资']])

输出结果为:

   姓名    工资
2  王五  7000
3  赵六  8000
4  钱七  9000

示例2:复杂的布尔索引条件

下面我们演示一个使用复杂的布尔索引筛选数据的例子。我们有一份销售数据,包含日期、商品编号、销售量和销售额等信息。现在我们要筛选出2021年4月份、销售额超过1万元的商品信息。

首先,我们定义数据框,并生成样本数据。

import pandas as pd
import numpy as np

dates = pd.date_range('20210401', periods=30)
data = {
    '日期': dates,
    '商品编号': np.random.randint(100, 200, 30),
    '销售量': np.random.randint(100, 200, 30),
    '销售额': np.random.randint(8000, 12000, 30)
}

df = pd.DataFrame(data)

接着,我们使用布尔索引筛选出2021年4月份、销售额超过1万元的商品信息。

df_sales = df[(df['日期'].dt.year == 2021) & (df['日期'].dt.month == 4) & (df['销售额'] > 10000)]
print(df_sales[['日期', '商品编号', '销售额']])

输出结果为:

          日期  商品编号    销售额
8  2021-04-09    145  10239
10 2021-04-11    194  10185
15 2021-04-16    186  10592
16 2021-04-17    106  10754
20 2021-04-21    168  11176
26 2021-04-27    190  11152
27 2021-04-28    163  10383