在Pandas中,我们可以使用apply方法来将一个函数应用于一列或多列数据。通常,这个函数可以是自定义的,也可以是Python内置函数。
假设我们有一个数据集,包括三列数据x、y和z,我们希望对x、y、z计算它们的平均值,并将结果存储在另一个列avg中,我们可以按照以下步骤操作:
- 导入Pandas模块和数据集
import pandas as pd
data = {
'x': [1, 2, 3, 4, 5],
'y': [2, 4, 6, 8, 10],
'z': [3, 6, 9, 12, 15]
}
df = pd.DataFrame(data)
- 定义计算均值的函数
def get_avg(row):
return (row['x'] + row['y'] + row['z']) / 3
- 应用函数并创建新列
df['avg'] = df.apply(get_avg, axis=1)
这里解释一下第三步采用了apply方法,该方法会遍历DataFrame的每一行,并应用get_avg函数计算每行的平均值。axis=1表示按行进行遍历,而不是默认的按列遍历。
最终得到的数据集如下所示:
x y z avg
0 1 2 3 2.0
1 2 4 6 4.0
2 3 6 9 6.0
3 4 8 12 8.0
4 5 10 15 10.0
我们可以看到,新的一列“avg”被添加到了数据集中,并且计算了每行x、y、z的平均值。
另外,我们还可以使用lambda表达式来定义函数,更加简洁快捷。示例如下:
df['avg'] = df.apply(lambda row: (row['x'] + row['y'] + row['z']) / 3, axis=1)
这里采用了匿名函数lambda来定义计算均值的函数,使代码更加简洁。
综上所述,使用apply方法将函数应用于多个列可以帮助我们快速处理数据集,并创建新的一列保存处理后的结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas中把一个函数应用于多个列 - Python技术站