pandas技巧之 详解DataFrame中的apply与applymap方法-Python教程

资源魔 50 0

相干学习保举:python视频教程

明天是pandas数据解决专题的第5篇文章,咱们来聊聊pandas的一些初级运算。

正在上一篇文章傍边,咱们引见了panads的一些较量争论办法,比方两个dataframe的四则运算,和dataframe填充Null的办法。明天这篇文章咱们来聊聊dataframe中的播送机制,和apply函数的应用办法。

dataframe播送

播送机制咱们其实其实不生疏, 咱们正在以前引见numpy的专题文章傍边已经引见过播送。当咱们对两个尺寸纷歧致的数组进交运算的时分,零碎会主动将此中维度较小的阿谁填充成以及另一个同样再进行较量争论。

比方咱们将一个二维数组减去一个一维数组,numpy会先将一名数组拓展到二维之后再进行减法运算。看起来就像是二维数组的每一一行辨别减去了这一个一维数组同样。能够了解成咱们将减去这一个一维数组的操作播送到了二维数组的每一一行或许是每一一列傍边。

正在下面这个例子傍边咱们创立了一个numpy的数组,而后减去了它的第一行。咱们比照下最初的后果会发现,arr数组傍边的每一一行都减去了它的第一行。

一样的操作正在dataframe也同样能够进行。

咱们当然也能够对某一列进行播送,然而dataframe四则运算的播送机制默许对行失效,假如要对列应用的话,咱们需求应用算术运算办法,而且指定心愿婚配的轴。

函数与映照

pandas的另一个优点是兼容了numpy傍边的一些运算办法以及函数,使患上咱们也能够将一些numpy傍边的函数运用正在DataFrame上,这样就年夜年夜拓展了应用办法和运算办法。

比方咱们要将DataFrame傍边一切的元素变为它的平方,咱们行使numpy的square办法能够很容易做到:

咱们能够将DataFrame作为numpy函数的参数传入,但若咱们想要本人界说一个办法而且使用正在DataFrame上怎样办?

咱们能够行使apply办法很容易地完成这一点,apply办法有些像是Python原生的map办法,能够对DataFrame傍边的每个元素做一个映照较量争论。咱们只要要正在apply办法傍边传入咱们想要使用正在DataFrame上的办法便可,也就是说它承受的参数是一个函数,这是一个很典型的函数式编程的使用。

比方咱们想要对DataFrame进行平方操作,咱们也能够将np.square函数当作参数传入。

apply办法除了了能够用正在一整个DataFrame上以外,咱们也能够让它使用正在某一行或许是某一列或许是某一个局部上,使用的办法都是同样的。比方咱们能够这样对DataFrame傍边的某一行和某一列使用平方这个办法。

另外,apply中函数的作用域其实不只局限正在元素,咱们也能够写出作用正在一行或许是一列上的函数。比方咱们想要较量争论出DataFrame傍边每一一列的最年夜值,咱们能够这样写:

这个匿名函数傍边的x实际上是一个Series,那这里的max就是Series自带的max办法。也就是说apply的作用范畴是Series,尽管终极的成果是每个元素都被扭转了,然而apply的作用域并非元素而是Series。咱们经过apply操作行或许列,行以及列将扭转使用到每个元素。

一样咱们也能够将apply的使用工具限定为行,一样咱们需求经过传入axis来限定,咱们能够传入axis='columns',也能够指定axis=1,这二者的成果是同样的。

另外,apply前往的后果其实不肯定只能是标量,也能够是多个值组成的list或许是Series,其实二者也是同样的,由于即便前往List也会被转化成Series。

最初咱们来引见一下applymap,它是元素级的map,咱们能够用它来操作DataFrame中的每个元素。比方咱们能够用它来转换DataFrame傍边数据的格局。

之以是咱们叫它applymap而没有是map,是由于正在Series的办法傍边,曾经有了map,以是为了区别创立了applymap。

这里要留意,假如将下面代码中的applymap改为apply是会报错的。报错的缘由也很简略,由于apply办法的作用域没有是元素而是Series,Series其实不支持这样的操作。

总结

明天的文章咱们次要引见了pandas傍边apply与applymap的应用办法, 这两个办法正在咱们一样平常操作DataFrame的数据十分罕用,能够说是手术刀级的api。纯熟把握关于咱们搞定命据解决十分有协助,假如各人了解Python华夏生的map办法的使用,置信肯定也能够很顺遂天文解明天的文章。

想理解更多编程学习,敬请存眷php培训栏目!

以上就是pandas技术之 详解DataFrame中的apply与applymap办法的具体内容,更多请存眷资源魔其它相干文章!

标签: Python python教程 python编程 python使用问题 DataFrame apply applymap

抱歉,评论功能暂时关闭!