1、首先,复习一下python中的map()函数:
2、如果我希望对于frame中的每一个元素都使用某个函数的话,其实是可以使用numpy中的ufunc的,结果返回的也是一个dataframe。
3、现在,如果我希望对于frame的每行或者说是每列运用函数,比如说我要求这个行(列)的最大值或者最小值或者均值之类的,就是使用聚合函数,我应该怎么办呢?答案是你可以使用apply()函数:
上面的函数返回的结果仅仅是返回某行(列)的某个聚合结果,最终返回的也就是一个Series,如果要同时返回某行或者某列的两个聚合值,比如说同时返回最大值和最小值,可以采用下面的方式:
这里的关键是要明白,apply()函数是传入一个函数,然后这个函数会作用于frame的某一行或者列,这里返回的结果依然是一个dataframe,所以,apply()函数的返回的结果会根据实际情况进行调整。
4、现在我们的目标是希望类似于python的列表的map()函数一样,对于frame中的每个元素使用某种函数,比如取该元素的平方:
显然,dataframe中是没有map()这个函数的用法的,但是series中有map()函数:
所以,这里就有了applymap()函数,通俗一点讲,就是apply + map,对于每一行或者列中的元素使用map()函数:
网友评论