内容简介:每天抽点时间,写写文采飘逸的文章坚持个几年,成为称霸一方的大佬坚持就会成功吧~
每天抽点时间,写写文采飘逸的文章
坚持个几年,成为称霸一方的大佬
坚持就会成功吧~
最近碰到瓶颈了, 一直找不到好的运营公众号的方式(好想有人指导唉~,对了,橡皮擦有个100多人的小qun,缺划水,话痨管理...)
谁有啥经验呢
给评论两句,帮橡皮擦指个鹿
嘿嘿哈嘿~
上一篇,我们捣鼓了一下dataframe计算类的函数
这一篇,
我要开始给你嘚啵一下分组与 排序 了
这两个函数分类
你一定要学会,学会了
就深得pandas精髓了
先说排序
英文 sorted
好了,说完了,其他的自己感受吧
O(∩_∩)O哈哈~
开个玩笑
作为程序布道师,我是一定要讲明白的
看,那是 sorted
在 dataframe
里面,有两个排序的函数
一个叫做 sort_values
,还有一个也叫做 sort_values
额,不对,叫做 sort_index
见到名字
对于已经看过我6篇博客的你来说
瞬间你就知道它们是干啥的了
- sort_index 按照索引排序
- sort_values 按照值排序
那我们就先表一表sort_index
先准备一个基本的数据
代码写的好不好,全看你找的数据准不准
df = pd.DataFrame([[4,8,3],[5,6,1],[1,9,2]],columns=['boys','girls','aboys'],index=['class2','class1','class3']) 复制代码
打印出来,一看就能看到,这个栗子举得真棒
boys girls aboys class2 4 8 3 class1 5 6 1 class3 1 9 2 复制代码
注意看,列索引的名字分别是 boys
, girls
, aboys
行索引的名字分别是 class2
, class1
, class3
顺序都是乱的哦~
下面,使用排序
df = pd.DataFrame([[4,8,3],[5,6,1],[1,9,2]],columns=['boys','girls','aboys'],index=['class2','class1','class3']) print(df) print(df.sort_index()) print(df.sort_index(axis=1)) print(df.sort_index(axis=0)) 复制代码
噔噔噔~
看结果
看到了没,axis这个参数,又起到作用了哦~
当然,倒序也是比较容易的
就加一个 ascending =False
就OK啦
这么简单,就不演示了
sort_index
嘚啵完毕,就该 sort_values
出面了
这个函数,比上面多一个参数 by
演示走一波
df = pd.DataFrame([[4,8,3],[5,6,1],[1,9,2]],columns=['boys','girls','aboys'],index=['class2','class1','class3']) print(df) print(df.sort_values(by='boys')) print(df.sort_values(by='girls')) print(df.sort_values(by='class1',axis=1)) 复制代码
继续上个小图,说明一下
当然,还可以指定多列,不过不推荐,你可以用下面的代码 微微一测,技术到手
print(df.sort_values(by=['boys','girls'])) 复制代码
排序嘚啵完毕,下面开始分组
分组,组叫做 group
在pandas中,这个就属于比较高级的函数的
GroupBy
官网注释里面给了一句
注意看,他把by当成了可选参数,
呵呵,官网写错了
你必须要传递一个by或者level进去
也就是按照谁来分组
但是,问题又来了
你要分组,必须要有意义
什么意思?
比如,我们一直测试的数据
这个数据,请问,你需要分组
你需要怎么分组?
这个压根不需要分组的好吧
所以分组前,你必须要明确的看到
恩,这个数据,我需要分组,才能不拉不拉的做一些事情
于是乎,我开始分组
顺手就来
看数据
import pandas as pd mydict = { 'class_name':['class1','class1','class2','class2'], 'student':[20,30,10,20] } df = pd.DataFrame(mydict) print(df) 复制代码
唉,这个数据就比较好学习分组了
在某次,某次什么事件中,统计到的每个班的学生人数如下
我接下来,要知道class1班有多少,class2班有多少人
那需要按照班级名字分组啊 也就是 class_name
你看,分组概念出来了吧
print("*"*100) print(df.groupby(by='class_name')) 复制代码
一瞅,结果
嘿嘿,果然看不懂
**************************************************************************************************** <pandas.core.groupby.groupby.DataFrameGroupBy object at 0x000001CB1D07CE80> 复制代码
其实没啥了,是一个 DataFrameGroupBy 对象
分组之后,你需要在使用一个聚合或者计算类的函数
就OK的拉
比如,分组求和
print(df.groupby(by='class_name').sum()) ------------------------------------------ student class_name class1 50 class2 30 复制代码
比如,分组求平均值
print(df.groupby(by='class_name').mean()) 复制代码
比如,分组求那个啥?
print(df.groupby(by='class_name').count()) 复制代码
还有那个啥
df.groupby(by='class_name').size() 复制代码
好了,来了一个小重点 small case
这两个乍一看,咦,结果一样唉
注意,细节,细节才能区分大佬与大菜鸟
print("*"*100) print(type(df.groupby(by='class_name').size())) print("*"*100) print(type(df.groupby(by='class_name').count())) 复制代码
这两返回的类型都不同
**************************************************************************************************** <class 'pandas.core.series.Series'> **************************************************************************************************** <class 'pandas.core.frame.DataFrame'> 复制代码
一个是Series,是个是DataFrame
在往深处研究
import pandas as pd mydict = { 'class_name':['class1','class1','class2','class2','class3','class4','class4'], 'student':[20,30,10,20,5,None,12] } df = pd.DataFrame(mydict) print(df) print("*"*100) print(df.groupby(by='class_name').size()) print("*"*100) print(df.groupby(by='class_name').count()) 复制代码
对比结果吧
拿出笔来,画重点
count不统计none值
漂亮,深得精髓
OK了,这篇博客到此结果喽
知道你没学会,学会你就是最聪明的
明天我们继续研究groupby的其他用法
到现在为止,简单的部分已经完事了
从NOW开始,剩下的都是难的了
哈哈哈哈
以上所述就是小编给大家介绍的《大周末的不休息,继续学习pandas吧,pandas你该这么学,No.7》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Vivaldi 3.3 发布,新增休息模式以及隐私窗口主题
- Linus 宣布休息一段时间,为过去的言行向社区道歉
- 挖洞经验 | 利用周六休息日狂赚两万欧的漏洞发现
- java – 混合Spring MVC Spring数据休息导致奇怪的MVC响应
- 周五啦!继续发车!
- 请继续重复发明轮子
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
快速转行做产品经理
李三科 / 华中科技大学出版社 / 2018-6-1 / 39.90
互联网已经进入以产品为中心的时代,不懂技术一样做高薪产品经理。本书将满足你转行、就业、加薪的愿望。 . 作者李三科,互联网资深产品经理。2011年离开传统销售行业进入互联网行业工作,从对产品经理的工作一无所知,到成长为一名年薪几十万的资深产品经理,他对产品经理职业有着深刻的理解,也积累了丰富的学习、工作经验。本书以作者亲身经历为线索,讲解学习产品经理相关知识和工作方法的经验,同时介绍求......一起来看看 《快速转行做产品经理》 这本书的介绍吧!