本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。
在介绍数据排序之前,我们先对数据理解建立一个感性的认识,我们知道一组数据可以表达一个或者多个含义,我们需要一个完整的运算过程来得到数据的含义,我们把这个简单的运算过程称为摘要,摘要就是数据在形成特征的过程中采用有损的形式获得的一些结果,我们能够通过摘要获得以下信息:
- 基本统计(含排序)
- 分布/累计统计
- 相关性和周期性的数据特征
- 深入数据挖掘,形成知识
严格上来说,我们不可能使用每一个数据的绝对值构成知识,通过数据构建知识的过程中一定是有损的,损失的多与少就形成了摘要的不同结果,摘要的第一个过程就是需要对数据进行排序,下面介绍数据排序的基本方法。
在pandas库中,无论是Series还是DataFrame类型,不仅可以对数据,还能对索引进行操作,所以在对数据进行排序两个方面,pandas提供了两个方法。
操作索引的排序方法
.sort_index()方法在指定轴上根据索引进行排序,默认升序,该方法并非对数据进行排序运算,而是对数据对应索引进行排序运算。
.sort_index(axis=0,ascending=True),其中ascending=True表示默认递增排序。
b = pd.DataFrame(np.arange(20).reshape(4,5), index=['c', 'a', 'd', 'b'])
b
0 1 2 3 4
c 0 1 2 3 4
a 5 6 7 8 9
d 10 11 12 13 14
b 15 16 17 18 19
b.sort_index(axis=0, ascending=True)
0 1 2 3 4
a 5 6 7 8 9
b 15 16 17 18 19
c 0 1 2 3 4
d 10 11 12 13 14
b.sort_index(ascending=False)
0 1 2 3 4
d 10 11 12 13 14
c 0 1 2 3 4
b 15 16 17 18 19
a 5 6 7 8 9
我们还能够对1轴进行排序
c = b.sort_index(axis=1, ascending=False)
c
4 3 2 1 0
c 4 3 2 1 0
a 9 8 7 6 5
d 14 13 12 11 10
b 19 18 17 16 15
pandas还提供了sort_values()方法对数据进行排序。
- Series.sort_values(axis=0,ascending=True),其中ascending=True表示默认递增排序;
- DataFrame…sort_values(by, axis=0,ascending=True),其中by表示axis轴上某一个索引或者索引列表。
b = pd.DataFrame(np.arange(20).reshape(4,5), index=['c', 'a', 'd', 'b'])
b
0 1 2 3 4
c 0 1 2 3 4
a 5 6 7 8 9
d 10 11 12 13 14
b 15 16 17 18 19
b.sort_values(2,ascending=False)
0 1 2 3 4
b 15 16 17 18 19
d 10 11 12 13 14
a 5 6 7 8 9
c 0 1 2 3 4
上述代码表示,默认0轴,对第二列进行降序排序,我们还能对1轴进行排序。
b.sort_values('d', axis = 1, ascending=False)
4 3 2 1 0
c 4 3 2 1 0
a 9 8 7 6 5
d 14 13 12 11 10
b 19 18 17 16 15
NaN的空值在排序中,统一放到末尾。
b = pd.DataFrame(np.arange(20).reshape(4,5), index=['c', 'a', 'd', 'b'])
b
0 1 2 3 4
c 0 1 2 3 4
a 5 6 7 8 9
d 10 11 12 13 14
b 15 16 17 18 19
a = pd.DataFrame(np.arange(12).reshape(3,4),index=['a','b','c'])
a
0 1 2 3
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
c = a + b
c

c.sort_values(2,ascending=False)

c.sort_values(2,ascending=True)

本文基于Python的pandas库,介绍了如何对数据和索引进行排序。主要讲解了.sort_index()方法用于按索引排序,.sort_values()方法用于按数据排序,两者都在默认升序的基础上支持降序排列。在排序过程中,NaN值会被自动放置到末尾。
5116

被折叠的 条评论
为什么被折叠?



