在Pandas Lambda函数中使用Apply,有多个if语句
在这篇文章中,我们将看到如何在一个pandas数据框架中应用多个带有lambda函数的if语句。在现实世界中,有时我们需要在一个数据框架中应用多个条件语句,以便为更好地分析数据做准备。
我们通常使用lambda函数来应用数据框架上的任何条件。
语法: lambda参数:表达式
一个匿名函数,我们可以立即传入,而不需要定义名称或任何像完整的传统函数的东西。
当我们使用这个lambda函数时,我们只能使用一个条件和一个else条件。我们不能像真正的python代码那样添加多个if语句。现在我们可以打破这些限制,看看如何在lambda函数中添加多个if语句。
创建Demonestration的数据框架
输出:
如果你需要根据学生的分数将其分为合格或不合格,用lambda函数来执行是非常直接的。
例如,
语法: df[ ‘Result’ ] = df[ ‘Maths’ ].apply( lambda x: ‘Pass’ if x>=5 else ‘Fail’ )
输出:
添加多个If语句
现在,要向lambda函数添加多个if语句,我们不能像前面的例子那样直接在一行中添加。如果我们添加一个以上的if语句,或者添加一个elif语句,就会出现错误。
输出:
为了解决这个问题,我们可以将if语句添加到一个传统的函数中,并在数据框中用apply()方法调用该函数。
语法: def conditions():
…conditions
在下面的程序中,我们要根据数学分数对学生进行分类。我们需要对数学特长班的学生进行分类。现在我们要把8分以上的学生归为 “不需要”,5分以下的学生归为 “需要”,其余学生的决定则暂不考虑。
输出:
所以你可以看到,我们已经成功地在数据框架中传递了多个if语句。