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()函数的作用与使用方法的完整攻略,包括两个使用实例的介绍。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.DataFrame.apply()(应用函数到数据框)函数使用方法 - Python技术站