Pandas中使用apply() 函数结合 lambda 表达式对数据进行自定义函数的处理
在 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 指定对每行执行自定义函数。
相关文章