Groupby 操作延伸|学习笔记

简介: 快速学习 Groupby 操作延伸

开发者学堂课程【Python 常用数据科学库:Groupby 操作延伸】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/546/detail/7491


Groupby 操作延伸

内容介绍

一、groupby 基本操作

二、groupby 索引的层级概念

三、pandas 结构中的还有多层索引

一、groupby 基本操作

1、之前说了 groupby 的一些基本用法,还有一些其他知识点,看看该怎么样给它们融合在一起。首先构造 df,再执行一下这样的一个 df 格式就出来了,abcd 四个列,然后分别有一些指标。按照习惯一开始输入 grouped,然后把数据传进来,以 A为键,然后算一个值,执行一下,可以看一下 group 之后它的 count 的值,count 值相当于是以 A 为键,A 里只有两个值,我们可以分别统计一下这两个值在 BCD 当中出现的次数,当进行 groupby 操作的时候,不光可以指定一个键,也可以指定两个,比如说传进来一个序列,这个序列里写两个东西一个 A 另一个 B,以两个为键也可以,看一下结果,只不过这个结果当中有一些候选项,相当于一共有六种选择,六种选择对应这六个不同的值,这就是最基本的 group by 的操作。

2、在 group by 操作的时候,也可以写上一些自定义的东西。比如说在这里定义一个函数,这个函数可以得到当前的 type 值。比如说把 letter 传进去,传进去之后,如果 letter 的小写在 aeiou 当中,就 return 一个值 a,如果不是就返回 b,这样写完了自定义的函数

def  get_letter_type(letter):

if letter.lower() in 'aeiou':

return 'a'

else:

return 'b'

grouped = df.groupby(get_letter_type,axis =1)

grouped. count

再来看一下它的结果,就是 groupby 之后,可以进行 return。如果说满足第一种会return a,如果说满足第二种就会 return b,就完成这样的操作,也可以自定义一些操作,自定义完之后,你想让它返回什么,它就给  你返回出来你自己定义的值,这些我们都是可以自己去设计的。        

                                                                 

二、groupby 其实有索引的层级的概念

1、groupby 其实有索引的层级的概念。比如说随便指定一个 Series,在 Series 结构当中,有一些值比如说是123123,然后接下来再来一些值875875,写完了打印出来,得到当前的数据,groupby 的时候可以指定一个l evel,它这里相当于我们不光可以指定一个索引,也可以指定多个索引, level 默认它是从零开始,然后执行一下可以去看它的一些属性,比如说可以看它的 first,结果只出现了一个578,这相当于groupby 之后,它是有些重复的,first 相当于是当中的第一部分,不光可以点 first,也可以点 last,有重复值的时候我们就可以执行这样的操作。

2、group 不光可以指定 level 索引的级别,还可以去指定 first 、last 看一下它具体的值。group 完结果也可以求它的 sum 值,相当于进行了求和的操作。刚刚执行操作的时候,实际上它进行排序,原始是875,它默认会进行自动的排序,但是如果不想要它排序,就给 sort 指定成 False 就可以了。然后我这里还可以再构造一个结构,指定一个 df2=pd.DataFrame

DataFrame 里再传进去一些东西,比如说传进去一个 X 等于 ABAB 这样四个值,然后传进去一个 Y,等于四个值1234,  

执行一下 XY 就出来了。重新写一下 df2.groupby 把 X 传进去,X 有 AB 值,你想关注哪一点可以去 get 一下 group 值,可以关注 A 也可以关注 B,这里 group 完之后就光关注 A 的值,如果写 B 它就会光关注 B,相对来说,你得到这个结果之后,你想要它关注什么它就会帮你去关注什么。


三、pandas 结构中的还有多层索引

1、在 pandas 结构当中,还有多层索引的概念,直接写这样的 arrays 结构

arrays = ['bar','bar', baz',baz','foo',foo','qux',qux'].

['one','two',' one', 'two','one','two','one','two']

然后在这里再指定一个索引 index,在 pandas 当中,还可以构造一个多重索引,Multi 的 index 值,然后.from,再从 from 当前构造出来的 arrays 进行构造,然后再把 arrays 传进去就可以了,传进去之后可以指定它的名字,name 一个等于 first、一个等于 second,这样就构造了一个多重索引,然后执行一下,执行完之后构造一个 Series 结构的结构,s=pd. Series,随便传进来一些数np.random.randn(8),index=index 这就构造出s 了,执行结果前面就是索引,有first、secomd,它是有这样的索引结构的。

2、接下来还是执行 group by 的操作。grouped=s.groupby(),里面可以传进来level, level 是等于零的,然后执行一下看结果。结果就出现一个 first,然后 first 后面对应一些值,这是 level 等于零的时候,接下来 level 指定成一,结果有 one two。所以说当在 group by 的时候,其实可以用多重索引来做这个事,一个数据当中不光可以有一个索引的,也可以指定多索引,当指定多索引的时候,在 group by时也可以自己去指定当前的一个索引是用哪个。如果不写 level 等于零等于一,不知道谁是第一个,谁是第二个,也可以写名字,在这里不是指名字了吗?指定 first 或者 second 结果也可以出来,所以说你可以把所有的名字指定进来,然后你指定 level等于零或者一这些都是可以的。

3、对于构造出来的 DataFrame,还可以对它执行一些特定的操作,特定的操作就需要跟 np 结合在一起,比如说在这里可以调 np.sum,这里还要进行 group的 操作,grouped=df.groupby(),把 AB 传进来,相当于 np 当中有些操作我们可以直接拿过来用了,这样就得到了当前的一个结果。

这就是一个以 AB 为键,执行了一个求 sum 和的操作。在这里还可以指定另外一种格式,在 grouped=df.groupby() 后再指定 as_index=False,这样就相当于把所有的行都列出来了。如果不指定就是一个行一个行地列,相当于一个全部版。  

4、在 groupby 里执行完一些操作之后,grouped=df.groupby(),可以去求和再reset 一下原来的 index 值,直接执行一下这样就出现结果了。就是说我还可以重新去构建一个索引,从0-5这几个数,在我们执行的时候,也可以指定这样的索引。还直接打印 size 值,grouped.size 执行一下,它的 size 值就出来了,就是可以看一下个数,这样就得到 size 的属性,算了组合的次数。还可以算很多东西,比如说group.describe().head,算它的统计特性值,通过 groupby  的操作得到的结果可以去算很多个属性,对咱们当前这个结果我可以去执行很多个操作, grouped=df.groupby(‘A’),它针对于某一个属性 C 来说,算它的一些统计特性值,比如说 np.sum,np.mean,np. std 标准差,执行结果可以统计出很多的特性,展示的时候,也可以给它再指定一个名字,就是麻烦一些,需要给它指定成一个字典结构。指定一个自定义的函数也可以,用一些匿名函数去指定这些都是没有问题的。

相关文章
|
Python
dataframe添加一新列
dataframe添加一新列
1850 2
|
5月前
|
机器学习/深度学习 索引 Python
技术经验分享:DataFrame(1):结构介绍
技术经验分享:DataFrame(1):结构介绍
85 0
|
3月前
|
SQL 数据挖掘 数据处理
不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...
不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...
|
3月前
|
数据可视化 数据挖掘 Python
揭秘数据排序的神秘面纱:如何用DataFrame排序和排名洞悉数据背后的秘密?
【8月更文挑战第22天】DataFrame排序和排名是数据分析的关键步骤,尤其在使用Python的Pandas库处理表格数据时尤为重要。通过对DataFrame使用`sort_values()`方法可实现基于一列或多列的灵活排序,而`rank()`方法则能轻松完成数据排名。例如,对学生信息DataFrame按分数排序及排名,或先按年龄排序再按分数排名,均可快速洞察数据模式与异常值,适用于金融分析和教育研究等多个领域。掌握这些技术有助于提高数据分析效率并深入理解数据。
45 1
|
SQL 存储 算法
为什么使用图进行关联运算比表Join更具吸引力?
为什么使用图进行关联运算比表Join更具吸引力?
为什么使用图进行关联运算比表Join更具吸引力?
|
数据挖掘
白话Elasticsearch37-深入聚合数据分析之案例实战Date Histogram Aggregation:统计每月电视销量
白话Elasticsearch37-深入聚合数据分析之案例实战Date Histogram Aggregation:统计每月电视销量
96 0
|
SQL 分布式计算 Java
聚合操作_groupBy_聚合操作 | 学习笔记
快速学习聚合操作_groupBy_聚合操作
128 0
聚合操作_groupBy_聚合操作 | 学习笔记
|
数据挖掘 BI 开发者
groupby 操作|学习笔记
快速学习 groupby 操作
128 0
groupby 操作|学习笔记
|
SQL 数据挖掘 数据处理
DataFrame行列表查询操作详解+代码实战
DataFrame行列表查询操作详解+代码实战
578 0
DataFrame行列表查询操作详解+代码实战
|
分布式计算 Hadoop 开发者
分组排序案例扩展| 学习笔记
快速学习分组排序案例扩展
分组排序案例扩展| 学习笔记