pandas中case when
时间: 2023-11-02 22:59:09 浏览: 59
在pandas中,可以使用apply函数结合lambda表达式来实现类似于SQL中的case when语句的功能。以下是使用apply函数实现case when语句的步骤:
1. 首先,创建一个新的列,用于存储case when结果。
2. 使用apply函数和lambda表达式来定义一个自定义函数,该函数根据条件返回对应的结果。在lambda表达式中,可以使用if-else语句来实现条件判断,并返回相应的结果。
3. 将自定义函数应用于DataFrame的某一列,通过设置axis参数为1来逐行处理。
4. 将结果存储到新创建的列中。
下面是一个示例代码,演示如何在pandas中使用apply函数实现case when语句的功能:
```python
import pandas as pd
# 创建示例数据
chengji = [[100, 95, 100, 98], [90, 98, 0, 94], [88, 95, 98, 95], [99, 98, 97, 92], [95, 90, 96, 88], [94, 94, 93, 77]]
data = pd.DataFrame(chengji, columns=['语文', '类别', '数学', '政治'])
# 创建新列
data['数学评级'] = data.apply(lambda x: 'A' if x['数学'] >= 90 else 'B' if x['数学'] >= 80 else 'C', axis=1)
# 输出结果
print(data)
```
以上代码中,我们使用apply函数和lambda表达式创建了一个自定义函数,根据数学成绩的不同范围分别返回'A'、'B'和'C',然后将该函数应用于DataFrame的数学列,将结果存储到新创建的数学评级列中。
请注意,这只是一种示例方法,你可以根据具体的需求和条件来修改lambda表达式中的条件判断和返回结果。