Pandas的排序和排名(Series, DataFrame) + groupby

根据条件对数据集排序(sorting)也是一种重要的内置运算。要对行或列索引进行排序(按字典顺序), 数组

可以使用sort_index 方法, 它将返回一个已排序的新对象:app

 

而DataFrame, 则能够根据任意一个轴上的索引进行排序:spa

降序

数据默认是按照升序排序的, 但也能够安装降序排序3d

 

 

 按值排序

 

若是有缺失值呢code

 求惟一值排序和频率排序

 

 Dataframe指定某列的值进行排序,by选项

 

 

那么若是多个呢?对象

 

排名

排名(ranking ) 跟排序关系密切, 且它会增设一个排名值(从1开始, 一直到数组中有效数据的数量)。blog

它跟numpy.argsort产生的间接拍下索引差很少, 只不过它能够根据某种规则破坏平级关系。接下来介绍Series和Dataframe 的rank方法。排序

默认状况下, rank是经过”为各组分配一个平均排名“的方式破坏平级关系的。索引

 降序pandas

 

 

 

 

 

 

 groupby方法

import pandas as pd
df = pd.DataFrame({'性别' : ['', '', '', '',
                              '', '', '', ''],
                       '成绩' : ['优秀', '优秀', '及格', '',
                              '及格', '及格', '优秀', ''],
                       '年龄' : [15,14,15,12,13,14,15,16]})
GroupBy=df.groupby("性别")

 

GroupBy.iter() 


GroupBy对象是一个迭代对象,每次迭代结果是一个元组,元组的第一个元素是该组的名称(就是groupby的列的元素名称),第二个元素是该组的具体信息,是一个数据框,索引是之前的数据框的总索引

for name,group in GroupBy:
    print(name)
    print(group)
女
   年龄 性别  成绩
1  14  女  优秀
3  12  女   差
5  14  女  及格
男
   年龄 性别  成绩
0  15  男  优秀
2  15  男  及格
4  13  男  及格
6  15  男  优秀
7  16  男   差

groupby还有其余子方法,须要的话本身在百度吧 

 

来个例子, groupby + apply + sortValues的例子

data.groupby('customer_id')['repayment_date'].apply(lambda x:x.sort_values(ascending=False)).reset_index()
相关文章
相关标签/搜索