我来详细讲解一下“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