前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas-10.排序

Pandas-10.排序

作者头像
悠扬前奏
发布2019-05-29 17:18:57
4970
发布2019-05-29 17:18:57
举报

Pandas-10.排序

Pandas有两种排序方式:

  • 按标签
  • 按实际值

以如下代码生成的DataFrame作为例子:

代码语言:javascript
复制
import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7], columns = ["col1", "col2"])

'''
       col1      col2
1  0.120356 -0.160916
4  1.268437 -0.416132
6  2.126170 -2.693228
2  1.116525 -0.262073
3  0.666465  0.845862
5  0.221342  1.641566
9 -0.977082 -0.221055
8 -0.840693 -0.645618
0 -1.902482  1.845218
7 -1.904138  0.159210
'''

按标签排序

sort_index()方法,通过传递axis参数和排序顺序,对DataFrame排序,默认升序:

代码语言:javascript
复制
sorted_df = unsorted_df.sort_index()
'''
col1    col2
0   -1.902482   1.845218
1   0.120356    -0.160916
2   1.116525    -0.262073
3   0.666465    0.845862
4   1.268437    -0.416132
5   0.221342    1.641566
6   2.126170    -2.693228
7   -1.904138   0.159210
8   -0.840693   -0.645618
9   -0.977082   -0.221055
'''

排序顺序

将bool值传递给ascending参数,可以控制排序顺序。

代码语言:javascript
复制
sorted_df = unsorted_df.sort_index(ascending=False)
'''
    col1    col2
9   -0.977082   -0.221055
8   -0.840693   -0.645618
7   -1.904138   0.159210
6   2.126170    -2.693228
5   0.221342    1.641566
4   1.268437    -0.416132
3   0.666465    0.845862
2   1.116525    -0.262073
1   0.120356    -0.160916
0   -1.902482   1.845218
'''

按列排序

通过传递axis参数为0或者1,可以对列标签进行排序。默认axis=0,逐行排序:

代码语言:javascript
复制
sorted_df=unsorted_df.sort_index(axis=1, ascending = False)
'''

col2    col1
1   -0.160916   0.120356
4   -0.416132   1.268437
6   -2.693228   2.126170
2   -0.262073   1.116525
3   0.845862    0.666465
5   1.641566    0.221342
9   -0.221055   -0.977082
8   -0.645618   -0.840693
0   1.845218    -1.902482
7   0.159210    -1.904138
'''

按值进行排序

sort_values()方法按照值排序,接受by参数指定排序根据的列名称:

代码语言:javascript
复制
sorted_df=unsorted_df.sort_values(by='col1')
'''

col1    col2
7   -1.904138   0.159210
0   -1.902482   1.845218
9   -0.977082   -0.221055
8   -0.840693   -0.645618
1   0.120356    -0.160916
5   0.221342    1.641566
3   0.666465    0.845862
2   1.116525    -0.262073
4   1.268437    -0.416132
6   2.126170    -2.693228
'''

排序算法

sorted_values()用kind参数指定mergesort,heapsort或quicksort作为排序算法:

代码语言:javascript
复制
sorted_df=unsorted_df.sort_values(by='col1', kind="quicksort")
'''

col1    col2
7   -1.904138   0.159210
0   -1.902482   1.845218
9   -0.977082   -0.221055
8   -0.840693   -0.645618
1   0.120356    -0.160916
5   0.221342    1.641566
3   0.666465    0.845862
2   1.116525    -0.262073
4   1.268437    -0.416132
6   2.126170    -2.693228
'''
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pandas-10.排序
    • 按标签排序
      • 排序顺序
        • 按列排序
          • 按值进行排序
            • 排序算法
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档