pandas DataFrame排序:sort_values(2)多列排序

1、背景

我现在有一个df,它有a_seq列和b_seq列。我现在的需求是先按照a_seq降序排序,再按照b_seq升序排序。

2、示例

import pandas as pd

# 创建一个示例DataFrame
data = {'a_seq': [2, 3, 1, 3, 2, 1],
        'b_seq': [101, 102, 201, 202, 301, 302]}

df = pd.DataFrame(data)

# 首先按楼层高度(floor_seq)降序排序,然后按房间编号(space_seq)升序排序
df_sorted = df.sort_values(by=['a_seq', 'b_seq'], ascending=[False, True])

# 打印排序后的DataFrame
print(df_sorted)

         a_seq    b_seq
1     3        102
3     3        202
0     2        101
4     2        301
2     1        201
5     1        302

之前写过sort_values,不过是单列排序。多列排序与单列不同在于参数,同时按照需求更改排序方式参数。

  • by:接受的是一个列名序号列表
  • ascending:也是一个列表,跟by参数对应,表示每一列排序方式。

可以看到,现在a_seq从大到小排列,相同的a_seq的b_seq再按照从小到大排序。


发表评论

评论列表,共 0 条评论

    暂无评论