python rank 倒序
时间: 2023-10-17 07:34:01 浏览: 232
要对一个 Python 列表进行倒序排列,可以使用 `sort` 方法或者 `sorted` 函数,并指定 `reverse=True` 参数。以下是使用这两种方法的示例代码:
使用 `sort` 方法:
```python
my_list = [5, 2, 9, 1, 7]
my_list.sort(reverse=True)
print(my_list)
```
输出:
```
[9, 7, 5, 2, 1]
```
使用 `sorted` 函数:
```python
my_list = [5, 2, 9, 1, 7]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)
```
输出:
```
[9, 7, 5, 2, 1]
```
无论是使用 `sort` 方法还是 `sorted` 函数,都会修改原始列表并返回排序后的结果。
相关问题
有a和b两列数据,先要用a分组,再按b进行倒序后给分组编号
以下是Python代码实现:
```
import pandas as pd
# 生成示例数据
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3, 3, 3],
'b': [10, 20, 30, 40, 50, 60, 70]
})
# 按a分组,按b倒序排序,生成新的编号列
df['group_id'] = df.groupby('a')['b'].apply(lambda x: x.sort_values(ascending=False).rank(method='dense', ascending=False))
print(df)
```
运行结果:
```
a b group_id
0 1 10 2.0
1 1 20 1.0
2 2 30 2.0
3 2 40 1.0
4 3 50 3.0
5 3 60 2.0
6 3 70 1.0
```
解释一下代码:
1. 首先用`pd.DataFrame`生成示例数据,包含两列`a`和`b`。
2. 使用`groupby`按`a`进行分组。
3. 对于每个分组,使用`apply`将对应的`b`列按倒序排序。`rank`函数则生成新的编号列,其中`method='dense'`表示出现相同数字时使用连续的编号,例如`[2, 2, 3]`会生成`[2, 2, 1]`,`ascending=False`表示按倒序排列。
4. 最后将编号列赋值给原DataFrame的新列`group_id`。
阅读全文
相关推荐








