Python进行数据的排序和排名 |
您所在的位置:网站首页 › 对一列数据进行排名的方法 › Python进行数据的排序和排名 |
本文主要介绍Python中使用pandas进行排序和排名操作,相关如下: 排序: 对数据集按照某一种方式进行排序(升序、降序或自定义顺序)。 排名: 对数据集按照某一种方式进行排名(从高到低、从低到高或自定义顺序排名),一般生成新的名次序号列。 1. 排序 (1)sort_index():按索引排序简介: sort_index(axis=1,ascending=False) axis:行索引或列索引,默认为列索引排序,axis = 1 表示对行进行排序; ascending:排序方式,默认升序,ascending=False 表示降序; 使用方法如下: obj = pd.Series(range(4),index=['d','a','b','c']) obj obj.sort_index() Out[110]: d 0 a 1 b 2 c 3 dtype: int64 Out[110]: a 1 b 2 c 3 d 0 dtype: int64对于DataFrame,则可以根据任意一个轴上的索引进行排序: frame = pd.DataFrame(np.arange(8).reshape(2,4), index=['three','one'], columns=['d','a','b','c']) frame frame.sort_index() frame.sort_index(axis=1)
简介: sort_values(by=‘b’,ascending=False) by:排序的依据,by=‘b’ 表示依据b列的数据进行排序; ascending:排序方式,默认升序,ascending=False 表示降序; 使用方法如下: obj = pd.Series([4,7,-3,2]) obj obj.sort_values() Out[114]: 0 4 1 7 2 -3 3 2 dtype: int64 Out[114]: 2 -3 3 2 0 4 1 7 dtype: int64特别的,在排序时,任何缺失值默认都会被放到Series的末尾: obj = pd.Series([4,np.nan,7,np.nan,-3,2]) obj obj.sort_values() Out[115]: 0 4.0 1 NaN 2 7.0 3 NaN 4 -3.0 5 2.0 dtype: float64 Out[115]: 4 -3.0 5 2.0 0 4.0 2 7.0 1 NaN 3 NaN dtype: float64在DataFrame中,可以将一个或多个列的名字传递给sort_values的by选项,来实现对一个或多个列中的值进行排序。 ## 单个排序结果 frame = pd.DataFrame({'b':[4,-3,-3,2], 'a':[0,1,0,1]}) frame frame.sort_values(by='b')
2. 排名 rank():对数据进行排名 简介: df.rank(ascending=False, method=‘max’) ascending:排名方式,默认从低到高,ascending=False 表示从高到低; method:排名方式,包括:“average”、“min”、“max”、“first”、“dense”。默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的,对照表如下: 排名会从1开始一直到数组中有效数据的数量。 obj = pd.Series([7,-5,7,4,2,0,4]) # 输出排名序号 obj.rank() Out[123]: 0 6.5 1 1.0 2 6.5 3 4.5 4 3.0 5 2.0 6 4.5 dtype: float64 ## 也可以根据值在原数据中出现的顺序给出排名: obj.rank(method='first') Out[124]: 0 6.0 1 1.0 2 7.0 3 4.0 4 3.0 5 2.0 6 5.0 dtype: float64这里,条目0和2没有使用平均排名6.5,它们被设成了6和7,因为数据中标签0位于标签2的前面。 你也可以按降序进行排名: obj.rank(ascending=False, method='max') Out[125]: 0 2.0 1 7.0 2 2.0 3 4.0 4 5.0 5 6.0 6 4.0 dtype: float64另,DataFrame可以在行或列上计算排名: frame = pd.DataFrame({'b': [4.3, 7, -3, 2], 'a': [0, 1, 0, 1], 'c': [-2, 5, 8, -2.5]}) frame frame.rank(axis='columns')
作者简介 作者:榆尚天 简介:一个数据分析的爱好者,立志成为一名数据界的幽灵。 微信平台:数据幽灵 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |