pandas中DataFrame的apply()方法和applymap()方法,以及python内置函数map()

       我们经常会对DataFrame对象中的某些行或列,或者对DataFrame对象中的所有元素进行某种运算或操作,我们无需利用低效笨拙的循环,DataFrame给我们分别提供了相应的直接而简单的方法,apply()和applymap()。其中apply()方法是针对某些行或列进行操作的,而applymap()方法则是针对所有元素进行操作的。

       我们给出具体的例子看这两个方法是怎么工作的,代码入下。首先我们构造一个(3,4)的DataFrame对象df1,然后我们想对每列进行求和,便可以利用apply()方法结合匿名函数lambda实现。apply()方法中的第一个参数是函数,这里我们传递了一个匿名函数给apply(),当然我们还可以通过axis参数指定轴,比如这里我们可以令axis=1,则就会返回每行的求和,这里默认axis=0。

       然后如果我们想对df1中的每个元素进行操作,比如这个例子中我们是想让每个元素只保留两位小数,那么可以通过applymap()方法实现。applymap()方法就是针对元素级的方法,比如在in[20]中,我们通过给applymap()方法传递一个格式化表达的匿名函数,通过applymap()方法将这个函数应用到每个元素上以实现我们的目标。这里之所以叫applymap()方法,是因为在Series中有一个对元素级操作的map()方法,参数也为函数。

        当然,一些常用的运算和统计方法,DataFrame都是自己定义了的,因此我们不用自己再构造匿名函数。但是一般的,DataFrame自己的运算方法都是针对所有的行或所有列的,具体是行还是列可以通过axis参数指定。

       此外,python也有一个类似的内置函数map(func,iterable),有两个参数,前者是一个方法,后者是被处理的可迭代对象,返回的是map对象。当然这个map对象可以直接通过list(map)等被显示转化为列表等对象。

猜你喜欢

转载自blog.csdn.net/S_o_l_o_n/article/details/80897376