浅谈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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
wxPython窗口中文乱码解决方法
Oct 11 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
Python KMeans聚类问题分析
Feb 23 Python
python中for用来遍历range函数的方法
Jun 08 Python
python socket 聊天室实例代码详解
Nov 14 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
python使用建议与技巧分享(一)
Aug 17 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
ASP.NET Core中的配置详解
Feb 05 Python
pandas中关于apply+lambda的应用
Feb 28 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
基于滚动条位置判断的简单实例
2017/12/14 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
Python collections模块实例讲解
2014/04/07 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python pillow模块使用方法详解
2019/08/30 Python
浅析python中while循环和for循环
2019/11/19 Python
python获取引用对象的个数方式
2019/12/20 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
建筑专业自我鉴定
2013/10/22 职场文书
生产车间主管岗位职责
2013/12/28 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
接收函
2019/04/22 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server