pandas组内排序,pandas对数据进行排序

pandas组内排序,pandas对数据进行排序,Pandas分组与排序的实现

本文主要介绍熊猫分组排序的实现。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。

一、pandas分组

1、分组运算过程:split-apply-combine

拆分:分组的基础。

应用:每个组运行的计算规则。

合并:合并每个分组的计算结果。

2、分组函数

DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs

依据:根据对哪些列进行分组,值可以是:映射、函数、标签或标签列表。

3、聚合函数

4.分组聚合示例

单列分组

进口熊猫作为pd

df=pd。DataFrame({'A': ['a ',' B ',' A ',' c ',' A ',' c ',' B '],' B': [2,8,1,4,

3,2,5,9],' C': [102,98,107,104,115,87,92,123],' D': [2,98,17,14,15,7,92,

13]})

df

A B C D

0 a 2 102 2

1 b 8 98 98

2 a 1 107 17

3 c 4 104 14

4 a 3 115 15

5 c 2 87 7

6 b 5 92 92

7 c 9 123 13

df.groupby(by='A ')。总和()

B C D

A

a 6 324 34

b 13 190 190

c 15 314 34

多列分组

Df。groupby (by=['a ',' b'])。sum () # # # a,b被索引

C D

一个B

a 1 107 17

2 102 2

3 115 15

b 5 92 92

8 98 98

c 2 87 7

4 104 14

9 123 13

多列聚合

Df.groupby (by=['a ',' b']) ['c']。sum () # # 1列

一个B

a 1 107

2 102

3 115

b 5 92

8 98

c 2 87

4 104

9 123

Df.groupby (by=['a ',' b']) ['c ',' d']。sum () # # 2列

C D

一个B

a 1 107 17

2 102 2

3 115 15

b 5 92 92

8 98 98

c 2 87 7

4 104 14

9 123 13

许多不同的聚合方法。

将numpy作为np导入

df.groupby(by=['A'])。agg({'C':[np.mean,' sum'],' D':['count ',np.std]})

C D

平均总和计数标准

A

108.000000 324 3 8.144528

b 95.000000 190 2 4.242641

c 104.666667 314 3.785939

Ps:使用不同的函数聚合不同的列C: mean,sum;d:计数,标准

返回值类型差异

方法1:聚集

df.groupby(by=['A'])。agg({'C':[np.mean]})

C

意思是

A

一点零八万英镑

b 95.000000

c 104.666667

type(df.groupby(by=['A'])。agg({'C':[np.mean]}))

类' pandas.core.frame.DataFrame '

方法2:索引

df.groupby(by=['A'])['C']。平均值()

A

一点零八万英镑

b 95.000000

c 104.666667

名称:C,型号:float64

type(df.groupby(by=['A'])['C']。均值())

类' pandas.core.series.Series '

总结:两种方法的结果是一样的,只是一种是DataFrame,一种是Series;有时候会派上用场。

二、pandas排序

按索引降序排序

df

A B C D

0 a 2 102 2

1 b 8 98 98

2 a 1 107 17

3 c 4 104 14

4 a 3 115 15

5 c 2 87 7

6 b 5 92 92

7 c 9 123 13

Df.sort _ index(升序=false) # # # index

A B C D

7 c 9 123 13

6 b 5 92 92

5 c 2 87 7

4 a 3 115 15

3 c 4 104 14

2 a 1 107 17

1 b 8 98 98

0 a 2 102 2

按值降序排序。

Df.sort _ values (by=' a ',ascending=false) #按列

A B C D

3 c 4 104 14

5 c 2 87 7

7 c 9 123 13

1 b 8 98 98

6 b 5 92 92

0 a 2 102 2

2 a 1 107 17

4 a 3 115 15

Df.sort _ values (by=['b ',' a'],ascending=false) # by 2列

A B C D

7 c 9 123 13

1 b 8 98 98

6 b 5 92 92

3 c 4 104 14

4 a 3 115 15

5 c 2 87 7

0 a 2 102 2

2 a 1 107 17

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: