关键词

详解pandas.DataFrame.apply()(应用函数到数据框)函数使用方法

pandas.DataFrame.apply()是pandas库中的一个函数,用来对DataFrame中的每一列进行操作,并返回一个Series或DataFrame。

函数定义:

DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)

参数解释:

  • func: 对每一列应用的函数。
  • axis: 应用函数的方向。0为列(默认),1为行。
  • broadcast: 应用函数的标识符,如果为真,则对于每个参数调用函数。
  • raw: 如果正在应用函数的函数期望原始DataFrame,则为真。
  • reduce: ufunc,待应用的reduce函数。
  • result_type: 返回结果类型。
  • args: 包含调用func的一个元组。

下面是两个例子:

例子1

假设我们有一个DataFrame,它包含以下列:名称,年龄,工资和部门。现在我们想将工资列中的所有值增加10,并将其存储在新的列中。

我们可以使用pandas.DataFrame.apply()函数,传递一个函数来执行操作:

import pandas as pd

# 创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 32, 18, 47],
    'Salary': [5000, 6000, 4500, 8000],
    'Department': ['IT', 'Finance', 'Marketing', 'Sales']
}

df = pd.DataFrame(data)

# 定义一个函数
def add_10(salary):
    return salary + 10

# 应用函数并创建新的列
df['NewSalary'] = df['Salary'].apply(add_10)

# 打印结果
print(df)

上面的代码中,我们定义了一个函数add_10()来增加工资列中的所有值。然后,我们使用apply()函数在Salary列上应用该函数,并将其存储在名为NewSalary的新列中。

输出结果:

Name Age Salary Department NewSalary
0 Alice 25 5000 IT 5010
1 Bob 32 6000 Finance 6010
2 Charlie 18 4500 Marketing 4510
3 David 47 8000 Sales 8010

例子2

在本例中,我们将创建一个DataFrame,包含姓名、分数、花费时间和课程列。我们将创建一个函数,它将根据以下规则计算分数的等级:

  • 如果得分高于90分,则返回'A+'
  • 如果得分在80-90之间,则返回'A'
  • 如果得分在70-80之间,则返回'B'
  • 如果得分在60-70之间,则返回'C'
  • 如果得分低于60分,则返回'D'
import pandas as pd

# 创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Score': [87, 63, 91, 78],
    'Time': [120, 150, 90, 180],
    'Course': ['Math', 'Science', 'Science', 'Math']
}

df = pd.DataFrame(data)

# 定义一个函数
def get_grade(score):
    if score > 90:
        return 'A+'
    elif score >= 80:
        return 'A'
    elif score >= 70:
        return 'B'
    elif score >= 60:
        return 'C'
    else:
        return 'D'

# 应用函数并创建新的列
df['Grade'] = df['Score'].apply(get_grade)

# 打印结果
print(df)

在上面的代码中,我们定义了一个名为get_grade()的函数来计算每个分数的等级。然后,我们使用apply()函数在Score列上应用该函数,并将其存储在名为Grade的新列中。

输出结果:

Name Score Time Course Grade
0 Alice 87 120 Math A
1 Bob 63 150 Science C
2 Charlie 91 90 Science A+
3 David 78 180 Math B

以上就是pandas.DataFrame.apply()函数的作用与使用方法的完整攻略,包括两个使用实例的介绍。

本文链接:http://task.lmcjl.com/news/17721.html

展开阅读全文