.describe() python_python的apply应用:一般性的“拆分-应用-合并”,附加详细讲解

5c0bc01627d19600c37384ddc2dce1f9.png

跟aggregate一样,transform也是一个有着严格条件的特殊函数:传入的函数只能产生两种结果,要么产生一个可以传播的标量值(如np.mean),要么产生一个相同大小的结果数组。最一般化的GroupBy方法是apply,apply会将待处理的对象拆分成多个片段,然后对各片段调用传入的函数,最后尝试将各片段组合到一起。

apply方法

举例:根据分组选出最高的5个tip_pct值。

首先,编写一个选取指定列具有最大值的行的函数。(原文比较拗口,其实就是“在 指定列找出最大值,然后把这个值所在的行选取出来。”)

In [1]: def top(df,n=5,column='tip_pct'):     ...: return df.sort_index(by=column)[-n:]     ...: 

新写法:注意与上面的差别

In [2]: def top(df,n=5,column='计划发出单量'):    ...: return df.sort_values(by=column)[-n:]    ...:In [3]: top(tips,n=6)Out[3]: total_bill  tip  smoker   day time  size tip_pct109   14.31       4.00 Yes      Sat Dinner 2   0.279525183   23.17       6.50 Yes      Sun Dinner 4   0.280535232   11.61      3.39 No      Sat Dinner 2   0.29199067    3.07       1.00 Yes     Sat Dinner 1   0.325733178   9.60       4.00 Yes     Sun Dinner 2   0.416667172   7.25       5.15 Yes     Sun Dinner 2   0.710345

如果对smoker分组并用该函数调用apply,就会得到:

46b247942c0d822a94fa4abff1a16642.png

top函数在DataFrame的各个片段上调用,然后结果由pandas.concat组装到一起,并以分组名称进行了标记。于是,最终结果就有了一个层次化索引,其内层索引值来自原DataFrame。

如果传给apply的函数能够接受其他参数或关键字,则可以将这些内容放在函数名后面一并传入:

d1c59b174dd1751a91afd859b3aa4ba1.png

注意:除这些基本用法之外,能否充分发挥apply的威力很大程度上取决于你的创造力。传入的那个函数能做什么全由你说了算,它只需返回一个pandas对象或标量值即可。本章后续部分的示例主要用于讲解如何利用groupby解决各种各样的问题。

在GroupBy对象上调用describe:

e3d753462bf1701908aaf204b68148f3.png
598a8049f76a41608250f5ac71cafc88.png

在GroupBy中,当调用诸如describe之类的方法时,实际上只是应用了下面两条代码的快捷方式而已:

f = lambda x: x.describe()

Grouped.apply(f)

禁止分组键:group_keys=False

分组键会跟原始对象的索引共同构成结果对象中的层次化索引。将group_keys=False传入groupby即可禁止该效果:

df5cf1c060abefcab4f71571f9c19261.png

python好书推荐

推荐一本python好书,初学者和数据分析必备,小编已读:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DNS服务(4)Slave DNS及高级特性

为了简化运维人员的负担,使用Master/Slave DNS架构的情况比较好,现在我们来简单叙述一下Master/Slaver DNS的特点主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理员维护;从DNS服务器:从主DNS服务器或其它的…

python运算符_Python运算符总结

建议:字符串拼接操作尽量多用join,而减少用”“ join操作时会先计算字符操作所用到的空间总和大小,然后申请内存。然后进行字符串连接操作。所以join的时间复杂的近似O(n)。 操作符连接操作符时,由于字符串是不可变对象&#xff0…

jupyter notebook常用快捷键

Jupyter Notebook 有两种键盘输入模式。编辑模式,允许你往单元中键入代码或文本;这时的单元框线是绿色的。命令模式,键盘输入运行程序命令;这时的单元框线是灰色。 命令模式 (按键 Esc 开启) Enter : 转入编辑模式Shift-Enter : …

Eclipse安装试用Hanlp

【1】确定正确安装配置Java和Eclipse 【2】下载HanLp的各种东西 hanlp.linrunsoft.com/services.ht… 下载这四个文件到本地,我是放在桌面的一个文件夹了。【3】 把jar包导入到Eclipse 在Eclipse先新建一个项目File——New——Java Project--[名字:Hanlp…

升级pip最新版本

python很多库对pip版本有要求,升级命令为: python -m pip install --upgrade pip windows在cmd下,输入以上命令

bat 存储过程返回值_使用Mybatis过程中遇到的坑

常规SSM框架开发中,mybatis遇到的坑是最多的,把以下几点坑记录下来防止以后再遇到同样的情况。1、mybatis 若果在mapper中返回值没有配置resultMap而是使用resultType直接返回的话,那么当心默认配置中的驼峰匹配规则,参考以下配置…

【洛谷 P2513】 [HAOI2009]逆序对数列(DP)

题目链接 这种求方案数的题一般都是\(dp\)吧。 注意到范围里\(k\)和\(n\)的范围一样大,\(k\)是完全可以更大的,到\(n\)的平方级别,所以这暗示了我们要把\(k\)写到状态里。\(f[i][j]\)表示前\(1\)~\(i\)的排列逆序对数为\(j\)的方案数。 现在考…

think python下载 中文版开源!这或许是最经典的编程教材

《Think Python》是很多Python初学者的不二入门教材,受到广泛好评。该书原作者是美国Olin工程学院的教授Allen B. Downey,目前该书的原版和中文版本都已免费开源。 中文版本译者是一名自学Python的编程爱好者。选择翻译《Think Python》,一是…

datatable的数据进行组内排序_排序算法学习分享(四)希尔排序

排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正!排序算法学习分…

jupyter notebook 安装代码提示功能

效果 安装成功后,输入部分代码,按 tab 键,会提示代码 安装步骤 1.安装nbextensions 从国内的pip镜像下载快 pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com jupyter_contrib_nbextensions jupyter contr…

转:EL表达式的11个内置对象

原文地址&#xff1a;https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP内置的表达式语言 JSP2.0开始&#xff0c;不让再使用Java脚本&#xff0c;而是使用EL表达式和动态标签来代替Java脚本 ############EL替代的是<%... %>&#xff0c;也就是说EL只…

python需要配置环境变量吗_python为什么会环境变量设置不成功

学习python编程&#xff0c;首先要配置好环境变量。本文主要讲解python的环境变量配置&#xff0c;在不同版本下如何安装 Windows 打开Python官方下载网站 https://www.python.org/downloads/release/python-370/ x86:表示是32位电脑 x86-64:表示是64位电脑 目前Python版本分为…

一维数组、二维数组、三维数组、四维数组、多维数组的理解

以图书馆来举例 一维数组是一条线 二维数组是一页纸 三维数组是一本书 四维数组是书架 五维数组是图书室2201&#xff08;好几个书架&#xff09; 六维数组是图书馆某一层&#xff0c;2楼/3楼&#xff0c;好几个图书室 七维数组是整个图书馆 第N维数组是宇宙..................…

线性筛

我就是我&#xff0c;一辈子都学不会线性筛的菜鸡 一篇非常好的博客转载于:https://www.cnblogs.com/yzxverygood/p/9907281.html

在资源使用状况视图中查看资源的负荷情况

只有工时类资源才会出现过度分配&#xff0c;因为工时类资源通常指组织内部的人力资源或者机械设备等&#xff0c;这些资源通常都有数量上的瓶颈&#xff0c;也只有工时类资源才会在【资源工作表】中设置它的最大单位和资源可用性&#xff0c;这就限制了它在不同时间段内的可用…

python常用单词自由且开放_python常用英语单词词汇 unit7

1. Darcula IntelliJ IDEA自带的黑色主题名称&#xff0c;Android Studio是基于IntelliJ IDEA的。 2. Appearance /prns/ n. 外观&#xff1b; 3. Custom /kstm/ n. 习惯&#xff1b; 4. UI abbr. 用户界面&#xff08;user interface&#xff09; 5.Terminate /tmnet/ 终止、结…

2018.10.29-2018.11.4

简述osi七层模型和TCP/IP五层模型应用层OSI 参考模型中最靠近用户的一层&#xff0c;是为计算用户提供应用接口&#xff0c;也为用户直接提供网络服务。常见的应用层网络服务协议有&#xff1a;HTTP,HTTPS,FTP,POP3,SMTP等表示层表示提供各种用于应用层数据编码和转换功能&…

CSV文件转Excel后数字自动转换成科学计数法的解决方法

CSV文件用Excel打开后&#xff0c;长度超过11位的数字自动转换成科学计数法显示&#xff0c;末尾数字变成“0000”&#xff0c;如何解决这一问题&#xff1f; 以“老劳模系统数据.CSV”为例&#xff0c;身份证码是科学计数法了 第一步&#xff1a;新建excel&#xff0c;用 off…

python 小说 云_python小说网站

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; python爬虫之小说网站--下载小说(正则表达式)思路:1. 找到要下载的小说首页,打开网页源代码进行分析(例:htt…

数据库导出到excel解决科学计数法问题

用Navicat等工具导出数据到excel的时候&#xff0c;身份证等超过11位的数字会自动转换成科学计数法&#xff0c;末尾数字变成“0000”。如何解决&#xff1f; 解决方式&#xff1a;给超过11位的数字末尾添加 \t 查询的时候&#xff0c;给相关字段添加 \t SELECT name,CONCAT…