pandas transform函数
DataFrame.transform(self,func,axis = 0,* args,** kwargs )
调用func自生成具有变换值的DataFrame并且具有与self相同的轴长度。

transform() 里面不能跟自定义的特征交互函数,因为transform是真针对每一元素(即每一列特征操作)进行计算,也就是说在使用 transform() 方法时,需要记得三点:
1、它只能对每一列进行计算,所以在groupby()之后,.transform()之前是要指定要操作的列,这点也与apply有很大的不同。
2、由于是只能对每一列计算,所以方法的通用性就局限了很多,例如只能求列的最大/最小/均值/方差/分箱等操作。
3、transform还有什么用呢?最简单的情况是试图将函数的结果分配回原始的dataframe。也就是说返回的shape是(len(df),1)
示例:
import pandasas pd
df= pd.DataFrame({'A': range(3),'B': range(1,4)})
print(df)
print('*'*30)
df.transform(lambda x: x+ 1)
print(df)

好啦,就到这里啦,谢谢。
网友评论