表格数据的排序功能(支持多列)

官方排序组件说明介绍

【表格数据】- 排序

1、功能说明

对 DataFrame 数据进行排序操作。

2、基本使用说明

  1. 在”df”参数内传入 DataFrame 数据集,例如传入【读取 excel】返回的 DataFrame:
    表格数据的排序功能(支持多列)

  2. 在”values”参数内输入排序依据的列名:
    表格数据的排序功能(支持多列)

3、参数配置说明

  • “ df ”参数:待排序的目标 DataFrame 数据。

  • “values”参数:输入 DataFrame 的列名,作为排序的依据。

  • “ascending”:设定排序的方式,默认 False 为降序,True 为升序。

    如下例,按照“产品风险等级”列降序排序:
    表格数据的排序功能(支持多列)

    按照“产品风险等级”列降序排序:
    表格数据的排序功能(支持多列)

  • “返回值”:返回排序后的 DataFrame。

实现多列参数排序需求

如下数据,按照身高的降序来排列一下。RPA 表格排序可实现

表格数据的排序功能(支持多列)

我们用到的是 df.sort_values() 这个函数。第一个参数为 by,传入你要排序的列的标签名即可,后面的 ascending 参数指示排序方法为升序还是降序,True 为升序,False 为降序。由于存在相同的身高,pandas 会自动的比较两个相同身高所对应的 index,按照 index 的升序来排列。

假如我有这样一个需求:先按照身高降序排序,若存在相同的身高,则再按照武力来降序排序,可以做到吗?

当然可以,我们只需要在 by 参数里传入列标签组成的列表即可。
表格排序组件可实现 - 注意老版本表格排序组件中 values 不要用 list 类型,使用 str,用’,’分割即可

表格数据的排序功能(支持多列)

通过这个例子我们可以看到,by 参数不但可以传入字符串,还可以传入字符串组成的列表,来实现对多个列进行排序。

接着,我的要求再高一点。身高我依然需要降序,但是武力我需要升序,可以吗?表格排序组件不可实现 - 因为无法给出两个 bool 参数

我们直接上结果:

表格数据的排序功能(支持多列)

跟 by 参数类似,我们只需要在 ascending 参数中也传入布尔值组成的列表就可以了,意思就是告诉 pandas,这两列我各自需要的排序方式,就跟后面 ascending 参数里指定的一样。因此,这两个参数的列表内的元素个数需要是一致的,否则就会报错了,因为没法一一对应。

关于 sort_values 这个强大的排序函数就介绍到这了。除了这些参数之外,它还有 inplace、kind 和 na_position 等参数来应对不同的排序需求。可以参考官网文档进行学习