1、同样,dataframe可以完成特征的计算,并且经常与groupby()方法一起使用。
2、不同点,apply()可以跟随自定义函数,transform()不能与自定义的特征交互函数。
apply()可以自定义的函数,包括简单的求和函数和复杂特征之间的差值函数(注:agg()方法不能直接用于apply / transform()python内置函数,如summ、max、min、’count‘等方法)
transform()不能与自定义的特征交互函数,因为transform真的是为每个元素(即每列特征操作)计算的,也就是说在使用中 transform() 方法时,要记住三点:
(1)它只能计算每一列,所以在groupby()之后,.transform()之前要指定要操作的列,这和apply有很大的不同。
(2)因为每列只能计算,所以方法的通用性比apply()有很多限制,比如只能求列的操作/最小/均值/方差/分箱。
(3)transform其他组欧平最简单的情况就是试图将函数结果分配回原来的dataframe。也就是说,返回的shape是(len(df),1)。
注:如果与groupby()方法结合使用,则需要对值进行去重。
以上是python中apply和transform的比较,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。