📜  按 pandas 中的两列排序 - Python (1)

📅  最后修改于: 2023-12-03 14:54:39.308000             🧑  作者: Mango

按 pandas 中的两列排序 - Python

在 Pandas 中,可以通过 sort_values() 方法轻松对 DataFrame 中的数据进行排序。本文将介绍如何按照两列对 DataFrame 进行排序。

准备工作

我们先创建一个简单的 DataFrame 作为演示:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [25, 20, 30, 35, 28],
    'score': [80, 90, 70, 85, 75]
}

df = pd.DataFrame(data)

DataFrame 数据如下:

| | name | age | score | |---:|:--------|:----:|------:| | 0 | Alice | 25 | 80 | | 1 | Bob | 20 | 90 | | 2 | Charlie | 30 | 70 | | 3 | David | 35 | 85 | | 4 | Edward | 28 | 75 |

按两列排序

我们可以使用 sort_values() 函数实现按照两列排序,代码如下:

df.sort_values(by=['score', 'age'], ascending=[False, True], inplace=True)

以上代码表示,先按照 score 列排序,如果有相同分数,则按照 age 列排序。ascending=[False, True] 表示第一列按照降序排序,第二列按照升序排序。inplace=True 表示直接在原 DataFrame 上进行修改。

排序后的 DataFrame 如下:

| | name | age | score | |---:|:--------|:----:|------:| | 1 | Bob | 20 | 90 | | 3 | David | 35 | 85 | | 0 | Alice | 25 | 80 | | 4 | Edward | 28 | 75 | | 2 | Charlie | 30 | 70 |

以上示例说明了如何按照两列对 DataFrame 进行排序。您也可以根据具体需求修改 byascending 参数来实现定制化排序。