pythonpandas排名_pandas如何进行数据排序和排名?

排序和排名是数据处理和分析中常用的方法,那么如何使用pandas进行数据的排序和排名呢?小编接下来进行介绍,具体参见下文:

1.排序和排名

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

1.1 sort_index方法

#Series排序

该方法可对行或列索引进行排序,返回一个已排序的新对象

In [17]: obj=Series(range(4),index=['d','a','b','c'])

In [18]: obj.sort_index()

Out[18]:

a 1

b 2

c 3

d 0

dtype: int32

#DataFrame排序

可以根据任意一个轴上的索引进行排序:

In [19]: frame=DataFrame(np.arange(8).reshape(2,4),index=['three','one'],columns=['d','a','b','c'])

In [20]: frame.sort_index() #默认axis=0

Out[20]:

d a b c

one 4 5 6 7

three 0 1 2 3

In [21]: frame.sort_index(axis=1)

Out[21]:

a b c d

three 1 2 3 0

one 5 6 7 4

1.2 升降序排序

默认是按升序(ascending=True)排序。

降序(ascending=False)排序如下:

In [22]: frame.sort_index(axis=1,ascending=False)

Out[22]:

d c b a

three 0 3 2 1

one 4 7 6 5

1.3 排序时的 Series缺失值

在排序时,任何缺失值默认都会被放到Series末尾:

In [24]: obj=Series([4,np.nan,7,np.nan,-3,2])

In [25]: obj.order()

__main__:1: FutureWarning: order is deprecated, use sort_values(...)

Out[25]:

4 -3.0

5 2.0

0 4.0

2 7.0

1 NaN

3 NaN

dtype: float64

1.4 DataFrame中的by排序

在DataFrame上,可能希望根据一个或多个列中的值进行排序。将一个或多个列的名字传递给by选项即可达到该目的:

In [26]: frame=DataFrame({'b':[4,7,-3,2],'a':[0,1,0,1]})

In [27]: frame

Out[27]:

a b

0 0 4

1 1 7

2 0 -3

3 1 2

In [28]: frame.sort_index(by='b')

__main__:1: FutureWarning: by argument to sort_index is deprecated, pls use .sort_values(by=...)

Out[28]:

a b

2 0 -3

3 1 2

0 0 4

1 1 7

In [30]: frame.sort_index(by=['a','b'])

__main__:1: FutureWarning: by argument to sort_index is deprecated, pls use .sort_values(by=...)

Out[30]:

a b

2 0 -3

0 0 4

3 1 2

1 1 7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值