pandas.DataFrame.apply()是pandas库中的一个函数,用来对DataFrame中的每一列进行操作,并返回一个Series或DataFrame。
函数定义:
DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)
参数解释:
下面是两个例子:
假设我们有一个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 |
在本例中,我们将创建一个DataFrame,包含姓名、分数、花费时间和课程列。我们将创建一个函数,它将根据以下规则计算分数的等级:
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