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)等被显示转化为列表等对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值