Pandas2.2 Series
Computations descriptive stats
方法 | 描述 |
---|---|
Series.align(other[, join, axis, level, …]) | 用于将两个 Series 对齐,使其具有相同的索引 |
Series.case_when(caselist) | 用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值 |
pandas.Series.case_when
pandas.Series.case_when(caselist)
是 Pandas 库中的一个方法,用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值。这个方法类似于 SQL 中的 CASE WHEN
语句,允许你根据多个条件对数据进行分类或转换。
方法签名
Series.case_when(caselist)
参数
- caselist: 一个包含条件-值对的列表。每个条件-值对是一个元组
(condition, value)
,其中condition
是一个布尔 Series 或可调用的条件函数,value
是对应条件为真时要返回的值。
返回值
- 返回一个新的 Series,其中的元素根据
caselist
中的条件进行替换。
示例
假设我们有一个 Series,表示学生的分数,我们想根据分数范围将其转换为等级。
import pandas as pd# 创建一个包含学生分数的 Series
scores = pd.Series([85, 92, 78, 60, 45, 30])# 定义条件列表
caselist = [(scores >= 90, 'A'),(scores >= 80, 'B'),(scores >= 70, 'C'),(scores >= 60, 'D'),(scores < 60, 'F')
]# 使用 case_when 方法进行转换
grades = scores.case_when(caselist)print(grades)
结果
0 B
1 A
2 C
3 D
4 F
5 F
dtype: object
解释
- 第一个元素
85
满足scores >= 80
的条件,因此返回'B'
。 - 第二个元素
92
满足scores >= 90
的条件,因此返回'A'
。 - 第三个元素
78
满足scores >= 70
的条件,因此返回'C'
。 - 第四个元素
60
满足scores >= 60
的条件,因此返回'D'
。 - 第五个和第六个元素
45
和30
满足scores < 60
的条件,因此返回'F'
。
注意事项
caselist
中的条件会按照顺序进行判断,一旦某个条件为真,就会返回对应的值,并且不会继续判断后续条件。- 如果没有任何条件为真,则返回
NaN
。
这个方法在处理复杂条件判断时非常有用,尤其是在需要对数据进行分类或转换时。