pandas if else
在数据分析和处理过程中,经常会遇到需要根据某个条件来判断并进行不同处理的情况。在pandas中,可以使用if else语句来实现这一功能。本文将详细介绍在pandas中如何使用if else语句进行条件判断和处理。
示例数据
为了方便演示,我们先创建一个示例数据。假设我们有一个包含学生姓名、年龄和成绩的数据集,如下所示:
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [20, 21, 22, 23, 24],
'Grade': [85, 90, 75, 80, 95]
}
df = pd.DataFrame(data)
print(df)
运行以上代码,我们可以得到如下的数据集:
Name Age Grade
0 Alice 20 85
1 Bob 21 90
2 Charlie 22 75
3 David 23 80
4 Eve 24 95
使用if else进行条件判断
单条件判断
首先,我们来演示如何在pandas中使用if else进行单条件判断。假设我们要根据学生的成绩来添加一个新的列,表示该学生的等级(优秀、良好、及格),可以使用以下代码实现:
df['Rank'] = ''
df['Rank'] = df['Grade'].apply(lambda x: '优秀' if x >= 90 else ('良好' if x >= 80 else '及格'))
print(df)
以上代码中,我们首先新增一个空的列”Rank”,然后使用apply函数对”Grade”列进行遍历,并根据不同的条件来判断学生的等级。运行以上代码,我们可以得到包含学生等级的数据集:
Name Age Grade Rank
0 Alice 20 85 良好
1 Bob 21 90 优秀
2 Charlie 22 75 及格
3 David 23 80 及格
4 Eve 24 95 优秀
多条件判断
除了单条件判断外,我们还可以使用多条件来进行判断。比如,现在我们要根据学生的年龄和成绩来判断是否为优秀学生,可以使用以下代码实现:
df['Excellent'] = ''
df['Excellent'] = df.apply(lambda x: '是' if x['Age'] < 23 and x['Grade'] >= 90 else '否', axis=1)
print(df)
以上代码中,我们使用apply函数并指定axis=1来对整行数据进行操作,根据学生的年龄和成绩来判断是否为优秀学生。运行以上代码,我们可以得到包含是否为优秀学生的数据集:
Name Age Grade Rank Excellent
0 Alice 20 85 良好 否
1 Bob 21 90 优秀 是
2 Charlie 22 75 及格 否
3 David 23 80 及格 否
4 Eve 24 95 优秀 否
结语
本文介绍了在pandas中如何使用if else语句进行条件判断和处理。通过示例数据的演示,我们展示了如何根据单条件和多条件来判断并进行不同操作。在实际数据处理中,对条件判断的灵活运用可以帮助我们更好地进行数据分析和处理。