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 条评论
暂无评论