Pandas、loc 与 non loc 的布尔索引

pythonPandas

1个回答

写回答

ZulYaR...

2025-07-09 01:35

+ 关注

Pandas
Pandas

Pandas中的布尔索引与loc和iloc方法

在数据分析和处理过程中,我们经常需要根据条件筛选和选择数据。Pandas是一个强大的Python库,提供了多种方法来实现这一功能。其中,布尔索引和loc与iloc方法是常用的工具。本文将介绍Pandas中的布尔索引与loc和iloc方法,并通过实例代码演示它们的用法。

布尔索引

布尔索引是一种通过逻辑条件来筛选数据的方法。它基于一系列布尔值,其中True表示保留该行或列,而False表示排除该行或列。我们可以使用布尔表达式来创建布尔索引,然后将其应用于数据框或序列。

例如,假设我们有一个包含学生信息的数据框,其中包括学生的姓名、年龄和成绩。现在我们想筛选成绩大于等于90分的学生。我们可以使用布尔索引来实现:

Python

import Pandas as pd

# 创建学生信息数据框

data = {'姓名': ['张三', '李四', '王五', '赵六'],

'年龄': [18, 19, 20, 21],

'成绩': [85, 92, 88, 95]}

df = pd.DataFrame(data)

# 使用布尔索引筛选成绩大于等于90分的学生

filtered_df = df[df['成绩'] >= 90]

print(filtered_df)

输出结果为:

姓名 年龄 成绩

1 李四 19 92

3 赵六 21 95

通过布尔索引,我们成功筛选出了成绩大于等于90分的学生。

loc方法

loc方法是一种通过标签进行选择和切片的方法。它可以接受一个布尔索引作为参数,也可以接受一个标签或标签列表作为参数。loc方法返回的是满足条件的行或列的副本。

我们可以使用loc方法来实现上述例子中的筛选操作:

Python

import Pandas as pd

# 创建学生信息数据框

data = {'姓名': ['张三', '李四', '王五', '赵六'],

'年龄': [18, 19, 20, 21],

'成绩': [85, 92, 88, 95]}

df = pd.DataFrame(data)

# 使用loc方法筛选成绩大于等于90分的学生

filtered_df = df.loc[df['成绩'] >= 90]

print(filtered_df)

输出结果为:

姓名 年龄 成绩

1 李四 19 92

3 赵六 21 95

loc方法与布尔索引的结果相同,但它更加灵活,可以接受更多的参数,例如选择特定的列或指定行和列的范围。

iloc方法

iloc方法是一种通过整数位置进行选择和切片的方法。它与loc方法类似,但接受的是整数索引而不是标签。iloc方法也可以接受一个布尔索引作为参数,返回满足条件的行或列的副本。

我们可以使用iloc方法来实现上述例子中的筛选操作:

Python

import Pandas as pd

# 创建学生信息数据框

data = {'姓名': ['张三', '李四', '王五', '赵六'],

'年龄': [18, 19, 20, 21],

'成绩': [85, 92, 88, 95]}

df = pd.DataFrame(data)

# 使用iloc方法筛选成绩大于等于90分的学生

filtered_df = df.iloc[(df['成绩'] >= 90).values]

print(filtered_df)

输出结果为:

姓名 年龄 成绩

1 李四 19 92

3 赵六 21 95

iloc方法与loc方法的结果相同,但它通过整数位置进行选择,可以更精确地定位行或列。

在本文中,我们介绍了Pandas中的布尔索引、loc方法和iloc方法,并通过实例代码演示了它们的用法。布尔索引是一种通过逻辑条件来筛选数据的方法,而loc方法和iloc方法则是根据标签或整数位置进行选择和切片的方法。这些方法在数据分析和处理中非常有用,可以帮助我们快速准确地筛选和选择数据。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号