Pandas中使用apply() 函数结合 lambda 表达式对数据进行自定义函数的处理

2023-02-24 00:00:00 函数 自定义 表达式

在 Pandas 中,可以使用 apply() 函数结合 lambda 表达式对数据进行自定义函数的处理。以下是一个示例:

import pandas as pd

# 创建数据框
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 30, 35, 40],
    'score': [80, 90, 85, 95]
})

# 使用 apply 函数和 lambda 表达式将 score 列加 5 分
df['score'] = df['score'].apply(lambda x: x + 5)

# 打印处理后的数据框
print(df)

在上述代码中,apply() 函数将 lambda 表达式作为参数传递给数据框的 score 列,对每个元素都执行 lambda 表达式中的函数,将其加上 5 分。

如果需要对数据框的多个列进行处理,可以在 apply() 函数中传递一个自定义函数,该函数对每行数据进行处理并返回处理结果。例如,以下示例对 age 和 score 两列分别执行自定义函数,将其都加上 10:

import pandas as pd

# 创建数据框
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 30, 35, 40],
    'score': [80, 90, 85, 95]
})

# 自定义函数,对 age 和 score 列分别加 10
def add_ten(row):
    row['age'] += 10
    row['score'] += 10
    return row

# 使用 apply 函数将自定义函数应用到每一行
df = df.apply(add_ten, axis=1)

# 打印处理后的数据框
print(df)

在上述代码中,apply() 函数的第一个参数是自定义函数 add_ten,它会对每行数据执行操作并返回处理结果。在函数中,使用 row['age'] 和 row['score'] 分别获取行中 age 和 score 两列的值,并将它们都加上 10。apply() 函数的第二个参数 axis=1 指定对每行执行自定义函数。

相关文章