在Pandas Lambda函数中使用Apply,有多个if语句

  • Post category:Python

使用Pandas Lambda函数的apply方法应用自定义函数来处理数据是使用Pandas的常见操作之一。当然,有时候我们需要在Lambda函数中使用多个if语句,以便根据不同的条件执行不同的操作。下面是详细的攻略:

创建示例数据

首先,我们需要创建一些示例数据,以便演示如何在Lambda函数中使用多个if语句。下面代码可以生成一个包含两列数据的DataFrame示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie'],
        'score': [80, 85, 90]}
df = pd.DataFrame(data)

定义Lambda函数

下一步是定义Lambda函数,该函数将应用于示例DataFrame中的每一行。假设我们希望根据以下规则为每个人分配等级:

  • 如果分数大于等于90分,则分配A级别;
  • 如果分数大于等于80分,但小于90分,则分配B级别;
  • 如果分数小于80分,则分配C级别。

以下是一个Lambda函数示例,该函数可以根据上述规则分配等级:

grade = lambda score: 'A' if score >= 90 else ('B' if score >= 80 else 'C')

在apply方法中使用Lambda函数

最后,我们可以使用apply方法将定义的Lambda函数应用于DataFrame。下面是完整的代码示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie'],
        'score': [80, 85, 90]}
df = pd.DataFrame(data)

grade = lambda score: 'A' if score >= 90 else ('B' if score >= 80 else 'C')
df['grade'] = df['score'].apply(grade)

print(df)

此代码将输出以下DataFrame:

       name  score grade
0     Alice     80     B
1       Bob     85     B
2  Charlie     90     A

以上代码对示例数据分别计算了每个人的等级并将其添加到新的一列中。我们在apply方法中将Lambda函数作为参数传递,并使用该函数计算每个人的等级。在Lambda函数中,使用了多个if语句来确定每个人所分配的等级。

希望这个攻略可以帮助你更好地理解如何在Lambda函数中使用多个if语句来处理数据。