看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas.Series.between
方法用于判断一个 Series 对象中的数据是否在指定的范围内。这个方法特别适用于需要筛选出特定范围内数据的场景,比如时间序列分析或数据清洗等。
返回布尔序列,等价于 left<=Series<=right
。此函数返回一个包含True的布尔向量,只要相应的Series元素位于左右边界值之间。NA值被视为False。
Series.between(left, right, inclusive='both')
此函数等效于 (left <= ser) & (ser <= right)
。
left
: 范围的左边界值。可以是与 Series 元素类型一致的任意数据类型,比如整数、浮点数、字符串、日期时间等。right
: 范围的右边界值。与 left
参数相似,需与 Series 元素类型一致。inclusive
: 指定左边界和右边界的包含情况。可选值有 'both'
(默认,表示左边界和右边界都包含)、'neither'
(表示左边界和右边界都不包含)、'left'
(表示只包含左边界)、'right'
(表示只包含右边界)。返回一个与原 Series 长度相同的布尔型 Series。每个元素的布尔值表示对应的原始数据是否在指定的范围内。
between
方法非常有用。s = pd.Series([2, 0, 4, 8, np.nan])
默认情况下包括边界值:
s.between(1, 4)
0 True
1 False
2 True
3 False
4 False
dtype: bool
如果包容性设置为“neither”,则排除边界值:
s.between(1, 4, inclusive="neither")
0 True
1 False
2 False
3 False
4 False
dtype: bool
left和right可以是任何标量值:
s = pd.Series(['Alice', 'Bob', 'Carol', 'Eve'])
s.between('Anna', 'Daniel')
0 False
1 True
2 True
3 False
dtype: bool
假设我们有一个包含学生考试成绩的 Series,我们希望筛选出成绩在 60 到 90 分之间的学生成绩。
import pandas as pd
# 构造示例数据
grades = pd.Series([56, 67, 78, 85, 92, 49, 73, 88])
# 使用 between 筛选出 60 到 90 分之间的成绩
filtered_grades = grades.between(60, 90)
# 输出原数据和筛选结果
print("原始成绩数据:")
print(grades)
print("\n成绩在 60 到 90 分之间:")
print(filtered_grades)
输出结果如下:
原始成绩数据:
0 56
1 67
2 78
3 85
4 92
5 49
6 73
7 88
dtype: int64
成绩在 60 到 90 分之间:
0 False
1 True
2 True
3 True
4 False
5 False
6 True
7 True
dtype: bool
在这个例子中,filtered_grades
返回一个布尔 Series,表示哪些成绩在 60 到 90 分之间。我们可以进一步使用这个布尔 Series 来筛选出符合条件的成绩:
# 筛选出成绩在 60 到 90 分之间的值
grades_in_range = grades[filtered_grades]
print("筛选后的成绩:")
print(grades_in_range)
输出结果如下:
筛选后的成绩:
1 67
2 78
3 85
6 73
7 88
dtype: int64
这个结果显示了所有在指定区间内的成绩。
inclusive
参数的使用:如果我们只想包含区间的右边界(比如要筛选 60 到 90 分之间,但只包含 90 分),可以使用 inclusive='right'
。filtered_grades = grades.between(60, 90, inclusive='right')
print(filtered_grades)
这个参数在数据分析中,可以根据实际需求灵活调整,提供了更精细的筛选控制。
总结来说,between
方法是一个简单但非常实用的工具,能够帮助我们快速地从数据中提取出需要的区间。
更新时间:Sept. 3, 2024, 9:22 a.m. 标签:pandas python 范围