浅谈Pandas中map, applymap and apply的区别


Posted in Python onApril 10, 2018

1.apply()

当想让方程作用在一维的向量上时,可以使用apply来完成,如下所示

In [116]: frame = DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon'])
In [117]: frame
Out[117]: 
        b     d     e
Utah  -0.029638 1.081563 1.280300
Ohio  0.647747 0.831136 -1.549481
Texas  0.513416 -0.884417 0.195343
Oregon -0.485454 -0.477388 -0.309548
In [118]: f = lambda x: x.max() - x.min()
In [119]: frame.apply(f)
Out[119]: 
b  1.133201
d  1.965980
e  2.829781
dtype: float64

但是因为大多数的列表统计方程 (比如 sum 和 mean)是DataFrame的函数,所以apply很多时候不是必须的

2.applymap()

如果想让方程作用于DataFrame中的每一个元素,可以使用applymap().用法如下所示

In [120]: format = lambda x: '%.2f' % x
In [121]: frame.applymap(format)
Out[121]: 
      b   d   e
Utah  -0.03  1.08  1.28
Ohio   0.65  0.83 -1.55
Texas  0.51 -0.88  0.20
Oregon -0.49 -0.48 -0.31

3.map()

map()只要是作用将函数作用于一个Series的每一个元素,用法如下所示

In [122]: frame['e'].map(format)
Out[122]: 
Utah    1.28
Ohio   -1.55
Texas   0.20
Oregon  -0.31
Name: e, dtype: object

总的来说就是apply()是一种让函数作用于列或者行操作,applymap()是一种让函数作用于DataFrame每一个元素的操作,而map是一种让函数作用于Series每一个元素的操作。

以上这篇浅谈Pandas中map, applymap and apply的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python采用getopt解析命令行输入参数实例
Sep 30 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
python实现屏保计时器的示例代码
Aug 08 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
用Python从0开始实现一个中文拼音输入法的思路详解
Jul 20 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
超级详细实用的pycharm常用快捷键
May 12 Python
对pandas中apply函数的用法详解
Apr 10 #Python
Python 25行代码实现的RSA算法详解
Apr 10 #Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 #Python
Python基于socket模块实现UDP通信功能示例
Apr 10 #Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 #Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 #Python
pandas将DataFrame的列变成行索引的方法
Apr 10 #Python
You might like
论建造顺序的重要性
2020/03/04 星际争霸
PHP中for与foreach的区别分析
2011/03/09 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
对numpy中shape的深入理解
2018/06/15 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
详解Python字典的操作
2019/03/04 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
庆元旦广播稿
2014/02/10 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
学校计划生育责任书
2015/05/09 职场文书
电影红河谷观后感
2015/06/11 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
vue使用watch监听属性变化
2022/04/30 Vue.js
python中validators库的使用方法详解
2022/09/23 Python