Pandas-10.排序

Pandas-10.排序

Pandas有两种排序方式:

  • 按标签
  • 按实际值

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

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排序,默认升序:

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参数,可以控制排序顺序。

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,逐行排序:

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参数指定排序根据的列名称:

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作为排序算法:

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
'''

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LintCode-82.落单的数

    给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

    悠扬前奏
  • LintCode-463.整数排序

    给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。

    悠扬前奏
  • Scala-7.控制结构-try/catch/finally

    try/catch 用于捕获一个或者多个异常 和Java语法类似,不同之处在于catch代码块中使用match表达式的方法

    悠扬前奏
  • ubuntu13.10打开火狐浏览器时总是提醒安装flash插件解决方法

    不动了,经搜索得知,flashplugin-installer是个坑货饿,如果不管它可能会一直等下去。

    汐楓
  • 纯代码屏蔽WordPress后台无用项让你的后台更加简洁

    根据自己的需要,将下面代码添加到当前主题functions.php或functions-diy.php文件中

    沈唁
  • Linux命令比较文件内容

    回顾一下两个文件中的内容,格式都是 x-yyyy这种格式,我们认为x为键,yyyy为值。现在我们只想比较x,而不关心yyyy。

    xiaoxi666
  • Flutter测试(一): Widget 测试了解一下

    Widget 测试是类似于单元测试的一种,在测试中添加交互,例如:滚动、点击等,然后对结果进行验证。

    Flutter笔记
  • PowerBI 2019年5月更新 引入做计划预测大杀器

    本月除了常规的更新以外,引入了一个非常牛的大杀器,叫做VALQ,专门用来做计划,预测,调整等,在很多领域都有广泛的运用。

    BI佐罗
  • Java异常抛出及try,catch应用实例

    1 class lanpingException extends Exception 2 { 3 lanpingException(String ...

    Angel_Kitty
  • Android 8.0 Oreo 之推送通知的变化 | 中文教学视频

    Android 开发者

扫码关注云+社区

领取腾讯云代金券